在 OpenCV 中访问 IPL_DEPTH_16S 类型的 IplImage 元素
我知道对于单通道字节图像,您会这样做:
((uchar *)(img->imageData + i*img->widthStep))[j]
对于单通道浮动图像,您会这样做:
((float*)(img->imageData + i*img->widthStep))[j]
但是对于 16 位签名图像(IPL_DEPTH_16S),我尝试过:
((short*)(img->imageData + i*img->widthStep))[j]
但
((signed int*)(img->imageData + i*img->widthStep))[j]
没有成功。
谢谢,
I know that for a single channel byte image you do:
((uchar *)(img->imageData + i*img->widthStep))[j]
and for a single channel float image, you do:
((float*)(img->imageData + i*img->widthStep))[j]
But how about for 16 bit signed images (IPL_DEPTH_16S), I tried:
((short*)(img->imageData + i*img->widthStep))[j]
and
((signed int*)(img->imageData + i*img->widthStep))[j]
to no avail.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实际上,如果你采用 widthStep/2,那么短的效果很好......
Actually, the short works fine if you take widthStep/2...
答案是:
这个例子解释了原因:
The answer is :
And the reason is explained by this example: