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中lambda的用法及其与def的区别解析
Jul 28 Python
python中sleep函数用法实例分析
Apr 29 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
Python实现的生成格雷码功能示例
Jan 24 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Python函数中不定长参数的写法
Feb 13 Python
Python3 实现减少可调用对象的参数个数
Dec 20 Python
Python常见反爬虫机制解决方案
Jun 01 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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
PHP图片上传类带图片显示
2006/11/25 PHP
PHP Socket 编程
2010/04/09 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
python实现的防DDoS脚本
2011/02/08 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
python中 logging的使用详解
2017/10/25 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
python图片合成的示例
2020/11/09 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
小学生三分钟演讲稿
2014/08/18 职场文书
三严三实学习心得体会
2014/10/13 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs