Opencv笔记——图像的部分基本操作(待补充)
来源:互联网 发布:mac打开srt 编辑:程序博客网 时间:2024/04/28 07:21
参考网址:
http://docs.opencv.org/modules/core/doc/basic_structures.html
http://docs.opencv.org/doc/user_guide/ug_mat.html
http://docs.opencv.org/trunk/opencv_cheatsheet.pdf
一、基本数据
在存取图像数据前,首先我们有必要了解OpenCV中定义的类Vec
二,加载图像
加载图像
Mat img = imread(filename)imread默认是读取图像文件,创建3通道图像数据。如果要创建单通道灰度图像,可用如下命令:
Mat img = imread(filename,0)
三、访问图像象元
访问图像数据时,需要特别注意数据类型。
对于单通道图像,我们要获取某个位置(y,x)的像素值,可采用如下语句:
Scalar intensity = img.at<uchar>(y, x);对3通道彩色图像有,我们可以采用如下的方式访问BGR数据:
Vec3b intensity = img.at<Vec3b>(y, x);uchar blue = intensity.val[0];uchar green = intensity.val[1];uchar red = intensity.val[2];类似的,对浮点型的3通道彩色图像,我们可以采用如下的方式访问BGR数据:
Vec3f intensity = img.at<Vec3f>(y, x);float blue = intensity.val[0];float green = intensity.val[1];float red = intensity.val[2];
除用下标访问之外,我们还可以采用迭代器访问:
Mat_<Vec3b>::iterator it = image.begin<Vec3b>(),itEnd = image.end<Vec3b>();for(; it != itEnd; ++it){uchar blue = (*it)[0];uchar green = (*it)[1];uchar red = (*it)[2];}
如果要改变象元BGR分量的强度值,我们可以采用以下方式:
img.at<uchar>(y, x) = 128;
或者for(int i = 0; i < 100; i++) img(i,i)=Vec3b(255,255,255);或者
Mat_<Vec3b>::iterator it = image.begin<Vec3b>(),itEnd = image.end<Vec3b>();for(; it != itEnd; ++it){*it=Vec3b(255,(*it)[1] ,(*it)[2] );}
选定图像的感兴趣区域
Rect r(10, 10, 100, 100);Mat smallImg = img(r);
从 IplImage 到 Mat
Mat img = imread("image.jpg");IplImage img1 = img;CvMat m = img;
从彩色图像到灰度图像
Mat img = imread("image.jpg"); // loading a 8UC3 imageMat grey;cvtColor(img, grey, CV_BGR2GRAY);从8UC1 到 32FC1:
src.convertTo(dst, CV_32F);
五、可视化图像
对于8U格式的图像,我们可以如下可视化
Mat img = imread("image.jpg");namedWindow("image", CV_WINDOW_AUTOSIZE);imshow("image", img);waitKey();
0 0
- Opencv笔记——图像的部分基本操作(待补充)
- OpenCV 学习笔记 ----图像的基本操作(二)
- openCV Python 学习笔记(一)图像的基本操作
- opencv pyhon学习笔记(四)基本的图像操作
- OpenCV笔记(2)图像基本操作
- 【OpenCV】笔记(5)——图像类型和基本操作
- Python下使用OpenCV——图像的基本操作
- 从零开始 OpenCV (三) —— 矩阵/图像的基本操作
- OpenCV-图像的基本操作
- 【OpenCV学习笔记】1.2图像的基本操作
- Opencv学习笔记(三)--图像处理的基本操作
- opencv 学习笔记--图像的基本操作(一)
- Opencv学习笔记--图像处理的基本操作
- Qt:&OpenCV—Q图像处理基本操作(Code)
- OpenCV学习笔记之(二):图像的基本操作(VS2010+OpenCV3.0)
- opencv基本图像操作
- opencv图像基本操作
- opencv-图像基本操作
- Android的String用法
- 工厂方法
- 微信iOS终端SDK新手使用指南
- java中如何使Double类型的数值保留两位小数问题
- qooxdoo通用javascript框架手册(三)
- Opencv笔记——图像的部分基本操作(待补充)
- MySQL存储过程详解 mysql 存储过程
- 判断网络获取的数据NSArry是否为空
- apache与tomcat6、7集群配置
- Framework7 – 赞!功能齐全的 iOS7 App 前端框架
- java中“@Deprecated”的意思
- php+ajax 仿百度搜索效果
- CentOS6.4配置SVN服务
- 揭秘山寨抗癌药:价格不足正品1/13 多来自印度