概述
获取某点像素值的方法
在输出像素值,不要直接用cout输出,将获得的像素幅值给一个变量,用cout输出这个变量。
1、ptr方法
mat类提供了ptr函数获取任意行的首地址,例如ptr[i]返回第i行的首地址。
例子:获取坐标【5,5】的像素值
Mat TrainData=imread("C:\Users\andy\Desktop\特征图片.jpg",1);
uchar *data=TrainData.ptr<uchar>(5);//获取第五行的首地址
int a =data[5];//获取第五行第五列的像素值并幅值给a。
cout<<a<<endl;//输出像素值
2、at 操作取矩阵值
试了好多次数,终于摸到一下at的用法,例子如下。
Mat=trainData=imread("D:/Opencv_tutorials_Learning/ML_Svm/SvmLearn/1.jpg",1);
int b=trainData.at<Vec3b>(1,10)[0];//这句话可以输出坐标(1,10)位置的0通道像素值,也就是B通道值
cout<<trainData.at<Vec3b>(1,10)[0]<<endl;//此语句可以运行,但运行时候没有输出任何值,但输出了换行
cout<<trainData.at<Vec3b>(1,10)<<endl;//此语句可以输出三通道的值,例如[230 222 102].
3、迭代器,这个方法比较复杂,初学就不考虑了。
最后
以上就是执着秋天为你收集整理的opencv获取矩阵某位置元素值的几种简便方法的全部内容,希望文章能够帮你解决opencv获取矩阵某位置元素值的几种简便方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复