概述:本道作业题是沙吭揭同学的课后练习,分享的知识点是widthstep,指导老师为康老师,涉及到的知识点涵盖:opencv求解释语句:((uchar)(Img1-imageData+Img1-widthSteppt...-widthstep,下面是沙吭揭作业题的详细。
题目:opencv求解释语句:((uchar)(Img1-imageData+Img1-widthSteppt...-widthstep
你应该是刚学opncv吧,widthstep是指图像每行所占的字节数,主要要和width区别,width是指每行所含的像素个数,但是一个像素也可能占一个字节,也可能占三个字节或者四个.imagedata是指向存储图像像素值数组的指针,内容是这个数组的首地址,pt.y指的是像素点的行坐标,所以Img->imageData + Img->widthStep*pt.y便是该像素点所在行的首地址,然后再加上该像素点所在的列,即pt.x,就得到了该像素点的地址,所以你的那句代码也可以写成
((uchar*)(Img1->imageData + Img1->widthStep*pt.y+pt.x)),都是指该像素点的像素值,至于强制类型转换,是因为会产生一些负值,而像素值是不能为负的.不用加分,
相关例题
题1:UCHAR*A=(UCHAR*)B是什么意思[数学]
定义 UCHAR 类型的指针 A,并将指针 B 强制转换成 UCHAR 类型的指针,并将其赋值给 A.
题2:请问,这个语句咋理解啊,里面的/**/是什么意思呢uchardispbuf[3]={/*0,0,0,0,*/0,10,10};
是注释
思考:
思考1:widthStep和width的区别
提示:这个就是图像对齐的概念,widstep一般要gt;=width,因为图像是严格按照4个字节的对齐,有时候相机样机会有width不规范比如659*494,这里width就是659,而widstep就是660,只有这样iplimage格式封装才会对齐。
思考2:opencv图像widthsteph是什么?
提示:widthStep表示存储一行像素需要的字节数。 widthStep必须是4的倍数,如果8U图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空在那儿不用。 也就是一个宽3高3的图像的imageData数据大小为4*3=...
思考3:QT中使用opencv:image-gt;imageData+image-gt;widthSte...
提示:image是两张图像相减的结果,那么image也是一张图像,只不过这张图像中存储的是两张图像的对应像素的差值。 image-gt;imageData+image-gt;widthStep*i)[j] 就是得到image图像中第i行第j列的像素值。 它还可以写成imageData[i*image-gt;widthStep+j],这...
思考4:widestep 和width的区别
提示:widthStep表示存储一行像素需要的字节数,而width等于像素的数目。 widthStep必须是4的倍数,如果8U图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空在那儿不用。 也就是一个宽3高3的图像的...
思考5:and stepwidth是什么意思
提示:geously decorated, and lighted by wax candle