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编程中的文件操作攻略
Oct 16 Python
python一键升级所有pip package的方法
Jan 16 Python
对numpy中数组元素的统一赋值实例
Apr 04 Python
Python实现的直接插入排序算法示例
Apr 29 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
详解Python是如何实现issubclass的
Jul 24 Python
new_zeros() pytorch版本的转换方式
Feb 18 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Python能做什么
Jun 02 Python
Django操作cookie的实现
May 26 Python
Python中super().__init__()测试以及理解
Dec 06 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
重置版宣传动画
2020/04/09 魔兽争霸
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php中mysql操作buffer用法详解
2015/03/19 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
jQuery.each使用详解
2015/07/07 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
学院领导推荐信
2013/10/30 职场文书
面试后的英文感谢信
2014/02/01 职场文书
审计专业自荐信范文
2014/04/21 职场文书
小学生综合素质评语
2014/04/23 职场文书
保护环境的标语
2014/06/09 职场文书
教师批评与自我批评
2014/10/15 职场文书
初婚初育证明范本
2014/11/24 职场文书
试用期自我评价范文
2015/03/10 职场文书
新学期家长寄语2016
2015/12/03 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server