【OpenCV】cv::Mat对单个像素的访问和操作
2017-03-08 10:10
225 查看
我们在使用OpenCV进行图像处理的过程中,经常会涉及到对指定位置像素的读取和修改,下面我们就介绍OpenCV中几种常用的对指定位置像素值的读取和修改操作。
一、at操作
at操作是一种直接简单的对单个像素的操作方式。
对于灰度图读取和修改操作如下:
对于RGB彩色图像而言:
at操作虽然简单方便,但是这种操作是一种效率比较低的操作,尤其用其进行遍历操作时,效率会很低。因此一般推荐使用下面要介绍的ptr操作。
二、ptr操作
ptr操作时通过指针偏移的方式进行像素的查找、遍历和修改的,因此效率相对较高。
对于灰度图的读取和修改操作如下:
对于RGB彩色图像而言:
自从2014年开通这个博客,一直没有静下心来维护这个博客。2016年又重新从事图像处理相关的工作,以后要好好维护这个博客。多用心,多总结,多和大家学习交流。不积跬步无以至千里!
一、at操作
at操作是一种直接简单的对单个像素的操作方式。
对于灰度图读取和修改操作如下:
uchar pixel_value = Mat.at<uchar>(row, col); Mat.at<uchar>(row, col) = pixel_value;
对于RGB彩色图像而言:
Vec3b color_value = Mat.at<Vec3b>(row, col); Mat.at<Vec3b>(row, col) = color_value;
at操作虽然简单方便,但是这种操作是一种效率比较低的操作,尤其用其进行遍历操作时,效率会很低。因此一般推荐使用下面要介绍的ptr操作。
二、ptr操作
ptr操作时通过指针偏移的方式进行像素的查找、遍历和修改的,因此效率相对较高。
对于灰度图的读取和修改操作如下:
uchar pixel_value = Mat.ptr<uchar>(row)[col]; Mat.ptr<uchar>(row)[col] = pixel_value;
对于RGB彩色图像而言:
Vec3b color_value = Mat.ptr<Vec3b>(row)[col]; Mat.ptr<Vec3b>(row)[col] = color_value;
自从2014年开通这个博客,一直没有静下心来维护这个博客。2016年又重新从事图像处理相关的工作,以后要好好维护这个博客。多用心,多总结,多和大家学习交流。不积跬步无以至千里!
相关文章推荐
- OpenCV: cv::Mat图像像素值访问及其坐标系问题
- OpenCV学习笔记 cv.Mat 与 .txt 文件数据的读写操作
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- Opencv2 中 Mat 关于图像像素的操作
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- OpenCV学习笔记 cv.Mat 与 .txt 文件数据的读写操作
- openCV2.X的cv::Mat访问元素
- 如何访问opencv中cv::Mat
- opencv笔记7----Mat访问每个像素
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值
- Opencv2 学习笔记<一>:cv::Mat数据访问方式
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat中每个像素的值(新)
- 【OpenCV】访问Mat中每个像素的值(新)
- 【OpenCV】访问Mat图像中每个像素的值
- 【OpenCV】访问Mat图像中每个像素的值