opencv练习题3-6
来源:互联网 发布:linux新建目录权限命令 编辑:程序博客网 时间:2024/06/06 09:37
练习3-5: 为一个图像创建多个图像头。读取一个大小至少为100×100的图像。另创建两个图像头并设置它们的origion,depth,nChannels和widthStep属性同之前读取的图像一样。在新的图像头中,设置宽度为20,高度为30。最后,将imageData指针分别指向像素(5,10)和(50,60)像素位置。传递这两个新的图像头给cvNot()。最后显示最初读取的图像,在那个大图像中应该有两个矩形,矩形内的值是原始值的求反值。
#include "cv.h"#include "highgui.h"int main(){ IplImage *src=cvLoadImage("lena.jpg"); IplImage *dst1,*dst2; dst1=cvCreateImage(cvSize(20,30),src->depth,src->nChannels); dst1->origin=src->origin; dst1->widthStep=src->widthStep; dst2=cvCreateImage(cvSize(20,30),src->depth,src->nChannels); dst2->origin=src->origin; dst2->widthStep=src->widthStep; dst1->imageData=src->imageData+10*src->widthStep+5*src->nChannels; dst2->imageData=src->imageData+60*src->widthStep+50*src->nChannels; cvNot(dst1,dst1); cvNot(dst2,dst2); cvNamedWindow("src",1); cvShowImage("src",src); cvWaitKey(0); cvReleaseImage(&src); cvReleaseImage(&dst1); cvReleaseImage(&dst2); cvDestroyWindow("src"); return 0;}说明:dst1 ->imageData = src->imageData + 10 * src->widthStep + 5 *
这句话的执行程序为:
imagedata指针是字节类型的指针,包含一个指向第一行图像数据的指针;而widthStep是相邻行同列点之间的字节数;
所以src->imageData + 10 * src->widthStep就是指向了第10行起始点的图像数据;
由于图像不是单通道的,所以 src->imageData + 10 * src->widthStep + 5 * src->nChannels就指向了像素点(5,10)的位置。
程序执行结果如下:
0 0
- opencv练习题3-6
- Opencv练习题3-7
- 《学习openCV》第四章练习题4-6
- opencv第三章练习题
- 数据存储练习题-(OpenCV第3章习题8)
- 学习OpenCV第三章练习题——3-4
- Opencv第三章练习题答案
- 6-3 编程练习题答案
- 练习题6
- 练习题3
- 《学习OpenCV》练习题第二章第三题
- 《学习OpenCV》练习题第二章第四题
- 《学习OpenCV》练习题第二章第五题
- 《学习OpenCV》练习题第三章第一题
- 《学习OpenCV》练习题第三章第二题
- 《学习OpenCV》练习题第三章第三题
- 《学习OpenCV》练习题第三章第四题
- 《学习OpenCV》练习题第三章第五题
- 深入理解ThreadLocal
- Poi Excel
- Regarding modified drag force formulation for application in dense flows
- 【iOS学习笔记】玩转字符串
- iOS中消息的传递机制
- opencv练习题3-6
- 黑马程序员—OC基础--类别与扩展
- 微软100题(28)整数的二进制表示中1的个数
- 游戏开发 定义数据模型
- 机器视觉和图像处理方面的研究工作应该知道
- activity生命周期详解
- scp 出现 ssh : connect to host localhost port 22:Connection refused
- 4.5操作矩阵堆栈 与 状态机
- android_fws_ams _study