python读取图像矩阵文件并转换为向量实例


Posted in Python onJune 18, 2020

假设图像矩阵大小为32×32,将其转换为向量,首先创建1×1024的NumPy数组,然后打开给定的文件,循环读出文件的前32行,并将每行的头32个字符值存储在NumPy数组中

import numpy as np
 
def img2vector(filename):
 returnVect = np.zeros((1, 1024))
 fr = open(filename)
 for i in range(32):
  lineStr = fr.readline()
  for j in range(32):
   returnVect[0, 32*i+j] = int(lineStr[j])
 return returnVect

补充知识:旋转向量和旋转矩阵的互相转换(python cv2.Rodrigues()函数)

处理矩阵三维转换时,通常采用旋转矩阵,但是旋转变换其实只有三个自由度,用旋转向量表达时更为简洁。因此,需要实现从旋转向量和旋转矩阵之间的互转换。

旋转向量和旋转矩阵之间可以通过罗德里格斯公式进行转换:

python读取图像矩阵文件并转换为向量实例

代码实现:

可以直接采用opencv中的Rodrigues函数实现,函数原型:

void Rodrigues( InputArray src, OutputArray dst, OutputArray jacobian = noArray() );

参数:

输入src:旋转向量(3*1或者1*3)或者旋转矩阵(3*3);

输出dst:旋转矩阵(3*3)或者旋转向量(3*1或者1*3);

输出jacobin:可选项,输出雅克比矩阵(3*9或者9*3),输入数组对输出数组的偏导数。

python代码举例:

# -*- coding: UTF-8 -*-
import os
import cv2
import numpy as np
T = np.zeros((1,3), np.float32)
a = (0.2,0.4,0.8)
print (a)
R = cv2.Rodrigues(a)
print (R[0])
v3 = (R[0][2,1],R[0][0,2],R[0][1,0])
print (v3)
c = cv2.Rodrigues(v3)
print (c[0])
b = cv2.Rodrigues(R[0])
print (b[0])
p = (-2.100418,-2.167796,0.27330)
print(cv2.Rodrigues(p)[0])

例子如下:

python读取图像矩阵文件并转换为向量实例

以上这篇python读取图像矩阵文件并转换为向量实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
python更新列表的方法
Jul 28 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
python 垃圾收集机制的实例详解
Aug 20 Python
Python3 模块、包调用&路径详解
Oct 25 Python
python正则实现计算器功能
Dec 14 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 Python
将python安装信息加入注册表的示例
Nov 20 Python
Python如何对齐字符串
Jul 30 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
Python datetime模块使用方法小结
Jun 18 #Python
Python读取Excel数据并生成图表过程解析
Jun 18 #Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 #Python
python名片管理系统开发
Jun 18 #Python
一文轻松掌握python语言命名规范规则
Jun 18 #Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 #Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 #Python
You might like
杏林同学录(一)
2006/10/09 PHP
很好用的PHP数据库类
2009/05/27 PHP
解析php中const与define的应用区别
2013/06/18 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python实现360的字符显示界面
2014/02/21 Python
Python中logging模块的用法实例
2014/09/29 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python异常处理例题整理
2019/07/07 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
Python @property及getter setter原理详解
2020/03/31 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
历史专业个人求职信分享
2013/12/20 职场文书
工作推荐信范文
2014/05/10 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
2014年老干部工作总结
2014/11/21 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
导游词之日本富士山
2020/01/06 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python