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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值