时间:2021-05-22
假设图像矩阵大小为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()函数)
处理矩阵三维转换时,通常采用旋转矩阵,但是旋转变换其实只有三个自由度,用旋转向量表达时更为简洁。因此,需要实现从旋转向量和旋转矩阵之间的互转换。
旋转向量和旋转矩阵之间可以通过罗德里格斯公式进行转换:
代码实现:
可以直接采用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 osimport cv2import numpy as npT = 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读取图像矩阵文件并转换为向量实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#文件和字节流的转换方法。分享给大家供大家参考。具体实现方法如下:1、读取文件,并转换为字节流FileStreamfs=newFileStrea
本文实例讲述了Python实现读取txt文件并转换为excel的方法。分享给大家供大家参考,具体如下:这里的txt文件内容格式为:892天平天国定都在?A开封B
图像处理图像变换就是找到一个函数,把原始图像矩阵经过函数处理后,转换为目标图像矩阵. 可以分为两种方式,即像素级别的变换和区域级别的变换Pointoperat
web采集的数据为%u6B63%u5F0F%u4EBA%u5458,需要读取并转换为python对象,想了下不调用Javascript去eval,只能自己翻译了
python读取.txt(.log)文件、.xml文件、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解1.读取文本文件数据(.txt结尾