如何确定像素类型以得到像素值

来源:互联网 发布:exec怎么用linux 编辑:程序博客网 时间:2024/05/21 19:53

opencv中的Mat数组类型用起来非常方便,但是我经常用到的两种由坐标获取像素灰度值的方式为

Mat img;img.at<uchar>(i,j)//或者指针方式img.ptr<uchar>(I,j)

都需要指定具体的类型。

于此相关的更多细节可以参考这篇文章:【OpenCV】访问Mat中每个像素的值(新)
http://blog.csdn.net/xiaowei_cqu/article/details/19839019


但是,对于所定义的情况较为复杂的类型所对应的像素类型该如何得到呢?

如定义了,Mat img(Size(3,3),CV_32S);

相关的文章有根据所定义图像类型去确定像素值类型的,比如

OpenCV不同类型Mat的at方法访问元素时该如何确定模板函数的typename    http://blog.csdn.net/xxyhjy/article/details/45485619

确定 OpenCV 矩阵元素的数据类型   http://blog.csdn.net/u013021895/article/details/52045410


我在碰到这种情况的时候,不管是img.at<int>还是img.at<long>都不能得到CV_32S(他是32位整形)。

如果有人遇到了这种情况,可以试一试下面的方法:img.at<__int>。其他类似的应该是相通的。

我对此没有深入研究,是自动补全方法中提供的一个方案。现在暂且记下,有时间或有人看到能更多了解一些。mark--2017年11月4日20:50:24

 

原创粉丝点击