opencv访问图像像素及简单应用
来源:互联网 发布:python经典视频教程 编辑:程序博客网 时间:2024/05/26 02:52
图像在内存中的存储方式
注:opencv 的通道顺序是BGR 而不是RGB
可以用isCountinous()判断矩阵是否连续存储
访问图像中像素方法
1)动态地址计算访问
Mat img=imread("1.jpg");Mat dst=img.clone();imshow("src",img);int rowNumber=img.rows;//行数int colNumber=img。cols;//列数for(int i=0;i<rowNumber;i++){ for(int j=0;j<rowNumber;j++) { dat.at<Vec3b>(i,j)[0]=0;//访问第i行,第j列像素蓝色通道 dat.at<Vec3b>(i,j)[1]=0;//访问第i行,第j列像素绿色通道 dat.at<Vec3b>(i,j)[2]=255;//红色通道 }}imshow("dst",dst);waitKey(0);dastroyAllWindows();//dst.at<uchar>(i,j)=255;//灰度图像
成员函数at用来读取像素,image.at(i,j)[channel]=value;
at方法不会进行类型转换,所以需要制定图像元素类型,并且要和矩阵内类型一致
2)指针访问
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)//RGB图像通道区分 { case 0://蓝色通道 data[j]=0; break; case 1://绿色通道 data[j]=255; break; case 2://红色通道 data[j]=0; break; default: break; } }}//data[j]=255//灰度图像Mat类提供了ptr函数可以得到图像任意行的首地址
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;i++){ (*it)[0]=0;//蓝色通道 (*it)[1]=255;//绿色通道 (*it)[2]=0;//红色通道}imshow("dat",dst);waitKey(0);dastroyZWindows();//Mat_类是Mat的模板子类,begin和end模板方法可以获得迭代器的开始和结束位置
减少效果
data[j]=data[j]/64*64+64/2;
雪花效果 :
随机选取来
int i,j;
for(int k=0,k<200;k++)
{
i=rand()%rowNumber;
j=rand()%colNumber;
dst.at(i,j)[0]=255;
dst.at(i,j)[1]=255;
dst.at(i,j)[2]=255;
}
阅读全文
0 0
- opencv访问图像像素及简单应用
- 【OpenCV】简单高效地访问图像像素
- opencv访问图像像素
- opencv访问图像像素
- Opencv访问图像像素
- OpenCV 2 访问图像像素
- OpenCV 访问图像像素点
- OpenCV:访问图像中的像素
- opencv(8)---访问图像像素
- Opencv并行访问图像像素
- OpenCV访问修改图像的像素值
- python OpenCV 图像像素访问 (三)
- OpenCV访问图像像素的方法
- opencv中访问图像像素方式
- 如何使用 opencv 访问图像像素
- opencv技术访问图像中的像素
- 【OpenCV学习笔记】十、访问图像像素
- opencv如何访问图像像素并赋值
- Intellij IDEA 下插件MyBatisCodeHelper
- 运用RadioButton实现图片浏览?
- python--函数基本功能
- 生成n个不重复的随机数 java
- Map和AbstractMap
- opencv访问图像像素及简单应用
- JAVA从基础到精通(包装类)
- [bzoj3130][Sdoi2013]费用流 二分+最大流
- progressBar(进度条)
- Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection(尺取)
- 【Python】9“切片和迭代“
- 前端问题总结
- 进度条UIProgressView和计步器结合
- 大数据-十