Opencv2 中 Mat 关于图像像素的操作
2013-04-24 11:00
381 查看
有三种方法获取图像中某点(i,j)的像素:
1、 M.at<float>(i, j)
2、使用 ptr 指针 M.ptr<float>( i )[ j ]
3、使用 data指针
M.data
对于 at 指针:
Mat img = imread("lena.jpg");
对于单通道,有:
for(int i=0;i<img2.rows;i++)
{
for(int j=0;j<img2.cols;j++)
{
uchar &value = img2.at<uchar>(i,j);
value = 255;
// img2.at<uchar>(i,j)=255; //取得像素或者赋值
}
}
对于三通道有:
for(int i=0;i<img2.rows;i++)
{
for(int j=0;j<img2.cols;j++)
{
for(int n=0;n<img2.channels();n++)
{
img2.at<uchar>(i,j*img2.channels()+n)=255; //取得像素或者赋值
}
}
}
// 或者是 img2.at<uchar>(i,j) [0] =255; img2.at<uchar>(i,j) [1] =255; ...........
对于 ptr 指针:
对于单通道,有:
Mat img = imread("lena.jpg");
for(int i=0;i<img2.rows;i++)
{
const uchar * output = img.ptr<const uchar> (i);
for(int j=0;j<img2.cols;j++)
{
*output ++ =255; //取得像素或者赋值
}
}
对于三通道有:
Mat img = imread("lena.jpg");
for(int i=0;i<img2.rows;i++)
{
const uchar * output = img.ptr<const uchr> (i);
for(int j=0;j<img2.cols;j++)
{
for(int k=0;n<img.channels();k++)
{
*output [j* img.channels() + k] = 255; //取得像素或者赋值
}
}
}
对于 data 指针:
下次在讲
1、 M.at<float>(i, j)
2、使用 ptr 指针 M.ptr<float>( i )[ j ]
3、使用 data指针
M.data
对于 at 指针:
Mat img = imread("lena.jpg");
对于单通道,有:
for(int i=0;i<img2.rows;i++)
{
for(int j=0;j<img2.cols;j++)
{
uchar &value = img2.at<uchar>(i,j);
value = 255;
// img2.at<uchar>(i,j)=255; //取得像素或者赋值
}
}
对于三通道有:
for(int i=0;i<img2.rows;i++)
{
for(int j=0;j<img2.cols;j++)
{
for(int n=0;n<img2.channels();n++)
{
img2.at<uchar>(i,j*img2.channels()+n)=255; //取得像素或者赋值
}
}
}
// 或者是 img2.at<uchar>(i,j) [0] =255; img2.at<uchar>(i,j) [1] =255; ...........
对于 ptr 指针:
对于单通道,有:
Mat img = imread("lena.jpg");
for(int i=0;i<img2.rows;i++)
{
const uchar * output = img.ptr<const uchar> (i);
for(int j=0;j<img2.cols;j++)
{
*output ++ =255; //取得像素或者赋值
}
}
对于三通道有:
Mat img = imread("lena.jpg");
for(int i=0;i<img2.rows;i++)
{
const uchar * output = img.ptr<const uchr> (i);
for(int j=0;j<img2.cols;j++)
{
for(int k=0;n<img.channels();k++)
{
*output [j* img.channels() + k] = 255; //取得像素或者赋值
}
}
}
对于 data 指针:
下次在讲
相关文章推荐
- opencv2中使用Mat对图像像素进行操作
- 关于opencv的Mat类型的imwrite()函数写入.jpg图像像素值会改变的解决方案
- opencv关于存取图像像素操作的汇总
- (转载)快速对图像的像素进行操作 opencv 实战
- opencv中Mat存储图像和遍历图像像素
- 如何操作图像的像素--Mat和vector
- Python-OpenCV图像像素点操作
- 图像的像素点操作【OpenCV学习笔记3】
- 五.使用OpenCv操作图像上每一个像素点
- opencv像素基本操作及图像遍历at
- opencv2.x中32位图像的像素级操作
- OpenCV关于视频处理的学习(VideoCapture类)-在检测中一些必要的图像操作
- OpenCV图像像素操作及效率分析
- 关于opencv 图像掩膜操作srcImage.copyto(dstImage, mask)说明
- 【OpenCV、Cximage、Mat】访问图像中每个像素的值
- OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
- opencv 图像读取显示和像素操作
- OpenCv 如何对图像的像素进行操作
- Python-OpenCV 处理图像(二)(三):滤镜和图像运算 图像像素点操作
- opencv关于像素操作的汇总2