OpenCV图像处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档