学习OpenCV3|OpenCV: 读取图片中某个点的像素值
读取图片中某个点的像素值
文章图片
RGB图→ \rightarrow → 降噪→ \rightarrow → Gray图→ \rightarrow → 两次降采样→ \rightarrow → 边缘检测图
此例子中未降噪
文章图片
注意:
此图来源
文章图片
【学习OpenCV3|OpenCV: 读取图片中某个点的像素值】创建时先列后行
//确定某个像素点
cv::Vec3b intensity=img_rgb.at(x,y);
//列,行
访问时先行后列
//访问某个像素点
(uint)img_gry.at(y,x) //行,列
main.cpp
#include int main() {//实例化矩阵
cv::Mat img_rgb,img_gry,img_cny,img_pyr,img_pyr2;
//创建窗口放置灰度图
cv::namedWindow("Example_Gray",cv::WINDOW_AUTOSIZE);
//创建窗口放置边缘检测图
cv::namedWindow("Example_Canny",cv::WINDOW_AUTOSIZE);
//读取图片
img_rgb=cv::imread("/home/.../Projects/CLionProjects/opencv_5/470111.jpg");
//RGB转灰度图
cv::cvtColor(img_rgb,img_gry,cv::COLOR_BGR2GRAY);
//显示灰度图
cv::imshow("Example_Gray",img_gry);
//第一次降采样
cv::pyrDown(img_gry,img_pyr);
//第二次降采样
cv::pyrDown(img_pyr,img_pyr2);
//Canny边缘检测器
cv::Canny(img_pyr2,img_cny,10,100,3,true);
//读写pixel(x:16,y:32)
int x=16,y=32;
//img_rgb.at<>()确定某个像素点
cv::Vec3b intensity=img_rgb.at(x,y);
//像素点(16,32)的三个通道
uchar blue=intensity[0];
uchar green=intensity[1];
uchar red=intensity[2];
//输出RGB图中像素点At(x,y)=(16,32):(blue,green,red)以及此像素点的三个通道值
std::cout<<"At(x,y)=("<< x << "," << y << "):(blue,green,red)=(" << (uint)blue <<","<< (uint)green <<","<< (uint)red << ")" << std::endl;
//输出灰度图中像素点(16,32)
std::cout<< "Gray pixel there is" << ":"<<(uint)img_gry.at(y,x) << std::endl;
//两次降采样后,同一个像素点的坐标变为原坐标的1/4
x /=4, y/=4;
//将边缘检测图中像素点(4,8)设置为255
img_cny.at(x,y)=255;
//输出经过图层金字塔降采样后的边缘检测图中像素点(4,8)
std::cout<<"Pyrimaid2 pixel there is" << ":" << (uint)img_cny.at(y,x) << std::endl;
//显示边缘检测图
cv::imshow("Example_Canny",img_cny);
//等待键盘事件
cv::waitKey(0);
//0或负数,程序会无限等待直到有键盘事件
return 0;
}
未对下图中的值进行强制类型转换,导致出现终端显示乱码
文章图片
文章图片
对上面的问题进行处理 (强制类型转换)
文章图片
像素点(16,32)的读取结果(136,122,104)
灰度图中像素点(16,32)的值为118
两次降采样后像素点(4,8)的值为0(黑色)
文章图片
灰度图
修改像素点(4,8)的值变为255 (白色)
img_cny.at(x,y)=255;
两次降采样后的边缘检测图
文章图片
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- opencv|opencv C++模板匹配的简单实现
- Java|Java OpenCV图像处理之SIFT角点检测详解
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习