OpenCV图像处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.将RGB彩色图像变为灰度图像
图像由彩色图转换为灰度图有三种方法。
a. 加权法GRAY=0.3*R+0.59*G+0.11*B
b. 均值法GRAY=(R+G+B)/3
c. 最大值法GRAY=max(R,G,B)
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
src输入的8-bit,16-bit 或32-bit单倍精度浮点数图像。
dst输出的8-bit, 16-bit 或32-bit单倍精度浮点数图像。
code色彩空间转换的模式,该code来实现不同类型的颜色空间转换。比如CV_BGR2GRAY 表示转换为灰度图,CV_BGR2HSV 将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY 时,dst需要是单通道图片。当code选用CV_BGR2HSV 时,对于8位图,需要将RGB值归一化到0-1之间。这样得到HSV图中的H范围才是0-360 ,S和V的范围是0-1。
Mat imread( const string& filename, int flags=1 );
Mat是OpenCV里的一个数据结构,在这里我们定义一个Mat类型的变量img,用于保存读入的图像,
在本文开始有写到,我们用imread函数来读取图像,第一个字段标识图像的文件名(包括扩展名) ,第二个字段用于指定读入图像的颜色和深度,它的取值可以有以下几种:
1) CV_LOAD_IMAGE_UNCHANGED (<0) ,以原始图像读取(包括alpha 通道),
2) CV_LOAD_IMAGE_GRAYSCALE ( 0) ,以灰度图像读取
3) CV_LOAD_IMAGE_COLOR (>0) ,以RGB 格式读取
#in clude
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespacestd;
using namespacecv;
int mai n()
cvtColor(src, dst, CV BGR2HSV);// 转换函数namedWindow("GRAY" , WINDOW AUTOSIZE );
imshow("GRAY" , dst);
cout << dst.cha nn els() << endl