Opencv学习笔记2--像素的访问
来源:互联网 发布:淘宝点卡类宝贝发布 编辑:程序博客网 时间:2024/06/06 05:43
#include "opencv2\opencv.hpp"
#include iostream
![成员函数at用来读取像素,image.at<Vec3b>(i,j)[channel] = value;
at方法不会进行类型转换,所以需要制定图像元素类型,并且要和矩阵内类型一致![这里写图片描述](http://img.blog.csdn.net/20170414140455673?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXEzODUxMDU1MDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
](http://img.blog.csdn.net/20170414140307218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXEzODUxMDU1MDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
using namespace cv;
using namespace std;
void main()
{
(1)动态地址访问
Mat img = imread("1.jpg");
imshow("src", img);
Mat dst = img.clone();
int rowNumber = img.rows;
int colNumber = img.cols;
for (int i = 0; i < rowNumber; i++)
{
for (int j = 0; j < colNumber;j++)
{
dst.at<Vec3b>(i, j)[0] = 255;//蓝色通道
dst.at<Vec3b>(i, j)[1] = 0;//绿色通道
dst.at<Vec3b>(i, j)[2] = 0;//红色通道
}
}
imshow("dst", dst);
waitKey(0);
(2)指针访问
/*Mat img = imread("1.jpg");
imshow("src", img);
Mat dst = img.clone();
int rowNumber = img.rows;
int colNumber = img.cols*img.channels();//获取每一行的元素
for (int i = 0; i < rowNumber; i++)
{
uchar *data = dst.ptr<uchar>(i);//获取每一行的首地址
for (int j = 0; j < colNumber; j++)
{
switch (j%3)
{
case 0: //蓝色通道
data[j] = data[j]/64*64+64/2;
break;
case 1: //绿
data[j] = data[j]/64*64+32;
break;
case 2: //红
data[j] = data[j]/64*64+32;
break;
}
}
}
imshow("dst", dst);
waitKey(0);
(3)迭代器访问
Mat img = imread("1.jpg");
Mat dst = img.clone();
imshow("src", img);
Mat_<Vec3b>::iterator it = dst.begin<Vec3b>(); //初始位置
Mat_<Vec3b>::iterator itend = dst.end<Vec3b>(); //终止位置
for (; it != itend; it++)
{
(*it)[0] = 0; //蓝色通道
(*it)[1] = 255; //绿色通道
(*it)[2] = 0; //红色通道
}
imshow("dst", dst);
waitKey(0);
destroyAllWindows();
}
速度:指针>迭代器>动态地址
- Opencv学习笔记2--像素的访问
- openCV学习笔记-三种访问像素的方法
- 【OpenCV学习笔记】十、访问图像像素
- 像素临近区域、颜色通道、ROI区域的访问---opencv.2学习笔记2
- OpenCV 2 学习笔记(5): 像素的访问:给图像加入椒盐噪声
- OpenCV学习笔记(1):openCV的数据结构与像素的访问
- OpenCV学习笔记九——访问图像中的像素
- opencv学习笔记——访问图像中的像素
- 像素级的图像处理---opencv.2学习笔记1
- opencv学习笔记(十四)——图像像素的访问
- OpenCV学习笔记(七):访问图像中像素的三类方法
- OpenCV 2 访问图像像素
- opencv笔记7----Mat访问每个像素
- 图像的像素点操作【OpenCV学习笔记3】
- 我的OpenCV学习笔记(二):操作每个像素
- Opencv学习笔记——绘制图像的像素直方图
- 【OpenCV学习笔记】【函数学习】二十(访问图像像素)
- kinect学习笔记四(距离变换 distance tranform 和opencv像素访问方式)
- Mysql
- ios 跳转safari
- RxJava2+Retrofit+RxBinding
- Host is not allowed to connect to this MySQL server 解决方法
- apache tomcat 集群整合测试 3
- Opencv学习笔记2--像素的访问
- 爬坑之iis6服务器伪静态组件安装及其使用
- ajaxform实现文件和表单信息一起提交
- 动态规划学习之路(1)
- c语言之链表的实现
- ACM-放苹果
- ADO读写DateTime方式
- pandas的绘图函数(一)
- darknet使用detector训练与测试自己的数据