opencv 使用cv :: Mat :: at()访问单个像素值
示例
要访问OpenCVcv::Mat对象中的像素值,您首先必须知道矩阵的类型。
最常见的类型是:
CV_8UC1用于8位1通道灰度图像;
CV_32FC1用于32位浮点1通道灰度图像;
CV_8UC3用于8位3通道彩色图像;和
CV_32FC3适用于32位浮点3通道彩色图像。
默认设置为cv::imread将创建一个CV_8UC3矩阵。
要访问单个像素,最安全的方法(虽然不是最有效的)是使用cv::Mat::at<T>(r,c)method,其中r是矩阵的行,c是列。模板参数取决于矩阵的类型。
让我们说你有一个cv::Matimage。根据其类型,访问方法和像素颜色类型将有所不同。
为CV_8UC1:ucharpixelGrayValue=image.at<uchar>(r,c)。
为CV_8UC3:cv::Vec3bpixelColor=image.at<cv::Vec3b>(r,c)。该cv::Vec3b对象表示的三重态uchar的值(整数0到255之间)。
为CV_32FC1:floatpixelGrayValue=image.at<float>(r,c)。
为CV_32FC3:cv::Vec3fpixelColor=image.at<cv::Vec3f>(r,c)。该cv::Vec3f对象表示float值的三元组。
请注意,OpenCV代表行优先的图像,例如Matlab或Algebra中的约定。因此,如果像素坐标为(x,y),则可以使用来访问像素image.at<..>(y,x)。
或者,at<>也支持通过单个cv::Point参数进行访问。
在这种情况下,访问是在column-major中完成的:
image.at<..>(cv::Point(x,y));
请参阅OpenCV文档以获取有关此方法的更多详细信息。
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短