python读取图像矩阵文件并转换为向量实例
假设图像矩阵大小为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 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 tkinter进度条控件(Progressbar)的使用
这篇文章主要介绍了Python tkinter进度条控件(Progressbar)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-04-04使用python执行shell脚本 并动态传参 及subprocess的使用详解
这篇文章主要介绍了使用python执行shell脚本 并动态传参 及subprocess的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-03-03python接口自动化使用requests库发送http请求
这篇文章主要介绍了python接口自动化使用requests库发送http请求,HTTP协议 ,一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准2022-08-08还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
目前对于Python来说,使用最多的功能肯定是Python爬虫.比如抢购茅台以及刷评论,盖楼等抽奖活动贴,都可以应用到爬虫的相关知识.今天博主将通过某个盖楼活动贴,来实现自动评论盖楼抽奖功能,需要的朋友可以参考下2021-06-06python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
这篇文章主要介绍了python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例,需要的朋友可以参考下2020-02-02
最新评论