【OpenCV】IplImage和char *的相互转换,以及极易忽视的细节
OpenCV中IplImage和单字节char*的相互转换
从 IplImage到 char* :
data = image->imageData //对齐的图像数据或者data = image->imageDataOrigin //未对齐的原始图像数据
从 char* 到 IplImage:
image =cvCreateImageHeader(cvSize(width,height), depth, channels);
cvSetData(image, data, step);
step指定IplImage图像每行占的字节数。需要注意是,在释放空间时不能直接使用cvReleaseImage,而需cvReleaseImageHeader,然后再delete data,这也是OpenCV里边“自己管理内存”的思想。
IplImage有两个属性非常值得关注,稍不留神就会导致错误:一是width属性;二是widthStep属性。前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。
IplImage *img=cvLoadImage(m_strfile,0);int height,widht,step,channel;height=img->height;widht=img->width;step=img->widthStep;channel=img->nChannels;
可以看出IplImage的widthStep并不等于width*channel,它是4字节对齐的。
举例:图像灰度化
//Width-图像宽
//Height-图像高
//pData-输入图像数据指针(DIB)
//lineByteIn-输入图像每行字节数
//pDataOut-输出图像数据指针
IplImage *img= cvCreateImageHeader(cvSize(Width,Height),IPL_DEPTH_8U,3);
cvSetData(img,pData,lineByteIn);
IplImage *des_gray=cvCreateImage(cvGetSize(img),img->depth,1);
cvCvtColor(img,des_gray,CV_RGB2GRAY);
memcpy(pDataOut,des_gray->imageData,des_gray->widthStep*des_gray->height);
cvReleaseImageHeader(&img);
cvReleaseImage(&des_gray);
【OpenCV】IplImage和char *的相互转换,以及极易忽视的细节相关推荐
- Hobject 与 OpenCV IplImage 和 Mat 的相互转换
- 【转】OpenCV里IplImage数据结构极易出错的问题,IplImage和单字节char*的相互转换
http://blog.csdn.net/liuyi1985/article/details/2174328 http://blog.csdn.net/liuyi1985/article/detail ...
- OpenCV中IplImage和单字节char*的相互转换
已知 IplImage* image 和 char* data 从 IplImage 到 char* : data = image->imageData //对齐的图像数据 或者 data = ...
- HObject,unsigned char的相互转换
**HObject,unsigned char的相互转换** 一.unsigned char*转HObject unsigned char* pFrameBuf; HObject ho_Image: ...
- 线代[2]|对极易混淆概念的梳理—线性相关与线性无关、极大线性无关部分组与秩与基础解系、向量空间的基与维数
原创首发于CSDN,转载请注明出处(CSDN:古希腊的汉密士),谢谢! 文章目录 一般形式的线性方程组 线性相关与线性无关 线性极大无关部分组与秩与基础解系 |齐次线性方程组的解 向量空间的基与维数 ...
- 极易广告投放平台v9灰黑色模版源码/广告联盟平台源码
正文: 完整标题: 广告联盟平台 极易一站式广告投放平台v9灰黑色高档网站模版源码 有需要的自行去体验吧. 程序: wwnefs.lanzouq.com/ir0TB0a3a78j 图片:
- FPGA极易入门教程----工具篇(2)Quartus II 的在线调试工具 In-System Sources and Probes(ISSP)
1.什么是ISSP?ISSP有什么用? Quartus II提供了In-System Sources and Probes Editor调试工具,通过JTAG接口使用该工具可以驱动和采样内部节点的逻辑 ...
- FPGA极易入门教程----汇总篇(直达链接)
为什么要写这个系列? 根据费曼学习法,最好的学习方法就是教会一个外行人(初学者).知识分享,独乐乐不如众乐乐.现在FPGA市场巨大,人才缺口很大.我本着能拉一个上贼船就拉一个上贼船的想法来写这个系列文 ...
- python基础教程:易忽视知识点小结
这篇文章主要介绍了Python易忽视知识点,实例分析了Python中容易被忽视的常见操作技巧,需要的朋友可以参考下 这里记录Python中容易被忽视的小问题 一.input(-)和raw_input( ...
最新文章
- php static method,php 类方法用static::hello(); 等同于 $this-hello();吗?
- 配置本地及网络yum源(详细步骤)
- 安利几个优质NLP开源项目!搜索、问答、情感分析…
- 并发服务器模型——多线程服务器
- 公司这个月要同时完成好多项目!!!
- (16)FPGA面试题MOORE 与 MEELEY状态机
- matplotlib scale 刻度
- DPDK 16.04/16.11.2 默认tx offload是关闭的引起tx vlan offload无效
- 一个人如果不学习,30岁就死了,活着的只是重复和应付
- delphi2007 注册码
- 浅谈JAVA项目开发
- 手机开热点但是电脑一直连接不上_电脑连接不上手机热点解决办法
- html 导航栏颜色代码,CSS实现五颜六色按钮组成的导航条效果代码
- 你知道微服务如何拆分,能解决哪些问题?
- 解决[Vue warn]: Unknown custom element: <ag> - did you register the component correctly? For recursive
- Android之ListView展示多类型的条目
- OutputStreamWriter的基本使用
- Java中对excle的一些操作
- 通过PowerShell管理Office 365的网站
- bug缺陷管理流程及等级划分
热门文章
- CQUOJ月赛(5月)H题:zzblack与斐波那契数列
- [高光谱] Hyperspectral-Classification Pytorch 的高光谱场景的通用类 HyperX
- Airflow集成在线编写创建dag的插件
- 图像处理十:图像反色
- 微波网络插入反射系数与输入反射系数
- SpringMVC XXX-servlet.xml ApplicationContext.xml
- ThinkPHP5 ajax传值到后台进行处理(验证是否含有某段字符串、截取字符串、字符串转数组)...
- Nginx篇--解读nginx配置
- 华为交换机基本配置命令
- 普元云计算-云计算平台项目团队组织架构与缘起