关于byte与Mat类型的互换
来源:互联网 发布:手机网络抓包工具 编辑:程序博客网 时间:2024/05/23 18:15
http://download.csdn.net/download/qq_35971623/10115253这是我根据源码改的opencv调用大恒工业相机的源码
现阶段由于帮老师做一个关于用大恒工业相机做视觉的项目,遇到了相机打开,格式转换,相机关闭等问题,有用过大恒相机的大佬也希望能出来分享一下
出于互相学习,互相促进,减少弯路的目的,现分享我对于格式转换的心得
由于网络传输的图像都是字节流的,而opencv对于图像的操作都是mat类型的,所以对于byte的字节流转换成mat就成了一个难题
由于我现在的相机调用存在问题,故现在只是在opencv上用图片进行操作,原理应该差不多,只要把*buffer变成你从相机流获得的数据即可
代码:
#include "opencv2/opencv.hpp"
#include "iostream"
#include<conio.h>
#include"GalaxyIncludes.h"
using namespace cv;
using namespace std;
Mat bytesToMat(byte * bytes,int width,int height)
{
Mat image = Mat(height,width,CV_8UC3,bytes).clone(); // make a copy
return image;
}
void main()
{
int key;
Mat src=imread("1.bmp");
Mat dst;
imshow("src",src);
int length = (int) (src.total() * src.elemSize());//total返回数组元素的总数 elemSize该方法返回以字节为单位的矩阵元素大小。例如,如果矩阵类型是 CV_16SC3,该方法返回3*sizeof(short)或 6
cout<<"length"<<length<<endl;
byte *buffer = new byte[length];
memcpy(buffer,src.data,length * sizeof(byte));
dst=bytesToMat(buffer,src.cols,src.rows);
imshow("dst",dst);
waitKey(0);
}
效果:
我是把一幅图像先转换成byte字节流,然后再从byte字节流转换成mat类型
千仓万箱,非一耕所得
干天之木,非旬日所长
- 关于byte与Mat类型的互换
- .mat与txt互换
- Java中String类型和Byte类型的互换问题
- C# float与Byte[]互换
- byte[]与short、int、long、float、double的互换
- JAVA_Int与String类型的互换
- JAVA_char[]数组与String类型的互换
- java &安卓 16进制字符串与byte互换以及int与byte类型数据转换
- 关于VB与网页的颜色互换
- Mat与IplImage*类型间的转换
- Mat类型与IplImage之间的转换
- BYTE 与char 类型的区别
- String与Byte[]类型的转换
- int 与 byte 的强制类型转换
- 【OpenCV】OpenCV的类型转换问题(BYTE、IplImage、Mat等)
- int, long和byte[]的互换
- openCV中Mat类型与IplImage类型的转换
- OpenCV Mat类型与IplImage类型的相互转换
- Ajax的简单用法
- Vue框架中关于vue-lazyload的简单应用实例(学习笔记③)
- 深入MNIST(1)
- selenium-Python之unittest(三)
- 二叉苹果树
- 关于byte与Mat类型的互换
- Oracle:序列
- JS-引用类型
- 安卓AudioRecord实现录音和播放,可以暂停和获取声音的大小,格式为amr和wav,可以对音频进行加密
- 浅析debugfs文件系统调试阶段gpio使用范例
- HNOI2008 BZOJ1010 玩具装箱toy
- 基于opencv的图像拼接(四): 基于stitch类的离线图像拼接
- Direct3D9之二学习资源篇
- 多态(Polymorphism)的实现机制(下)--Java篇