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的web框架中配置app的教程
Apr 30 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
python批量制作雷达图的实现方法
Jul 26 Python
Python SQLite3简介
Feb 22 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
python模拟点击在ios中实现的实例讲解
Nov 26 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
浅谈json_encode用法
2015/03/05 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
PHP strripos函数用法总结
2019/02/11 PHP
总结一些js自定义的函数
2006/08/05 Javascript
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
Python多进程机制实例详解
2015/07/02 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
关于Java finally的面试题
2016/04/27 面试题
建筑经济管理专业求职信分享
2014/01/06 职场文书
奥林匹克的口号
2014/06/13 职场文书
学校周年庆活动方案
2014/08/22 职场文书
办公室禁烟通知
2015/04/23 职场文书
销售口号霸气押韵
2015/12/24 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
MySQL数据库完全卸载的方法
2022/03/03 MySQL