概念
用于将图像从一个颜色空间转换到另一个颜色空间的转换,比如将彩色图像转换为灰度图像等。
函数讲解
●函数原型
○c++
void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 )
○Android
void cvtColor(Mat src, Mat dst, int code, int dstCn)
●参数解释
○src:源图像Mat对象
○dst:目标图像Mat对象
○code:转换的方式,所取的值以CV_开头后面是转换的方式,比如将RGBA转换为GRAY就是:CV_RGBA2GRAY
○dstCn:输出的通道数 (0='automatic'),如果指定的值是默认值0,那么通道数将由输入图像和颜色转换码决定。
函数使用
●c++中
#include<opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("C:/Users/Administrator/Desktop/txyzm.png");//引入源图像
if (src.empty()) {
return -1;
}
Mat graySrc;
cvtColor(src, graySrc,CV_BGR2GRAY);//将BGR转换为GRAY
imshow("graySrc", graySrc);//展示目标图像
waitKey(0);
return 0;
}
●Android中
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_beauty);//获取源图像Bitmap对象
Mat src = new Mat();
Mat dst = new Mat();
Utils.bitmapToMat(bitmap,src);//Bitmap转换为Mat对象
Imgproc.cvtColor(src,dst,Imgproc.COLOR_RGBA2GRAY);//颜色空间转换
Utils.matToBitmap(dst,bitmap);//Mat转换为Bitmap对象
imageView.setImageBitmap(bitmap);
网友评论