cvtColor彩色空间转换-------opencv2.4.11(Java)
imshow函数在Java中被去掉了,只能通过imwrite()保存为图片后再查看图像处理的效果。
1、cvtColor()
通过查看官方文档:
函数定义:public static void cvtColor(Mat src,Mat dst,int code)
通过org.opencv.imgproc.Imgproc.cvtColor可以知道,cvtColor定义在org.opencv.imgproc.Imgproc中,要使用cvtColor函数要引入org.opencv.imgproc.Imgproc。引入方法为:import org.opencv.imgproc.Imgproc;Imgproc.cvtColor(source mat, destination mat1, Color_Conversion_Code);
示例1
(1)新建java工程,名为LoadImage,新建一个类“LoadImage”。
(2)新建一个文件夹“Resources”,并将待处理图像拷贝进去,然后新建一个文件夹“Result”,用于输出图像的输出。
(3)添加“opencv-2.4.11”。
代码:
import org.opencv.core.Mat;//Mat结构
import org.opencv.highgui.Highgui;//用于图像读取
import org.opencv.imgproc.Imgproc;//cvtColor位于此处
import org.opencv.core.CvType;
public class LoadImage {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.loadLibrary("opencv_java2411");//加载库
Mat image = Highgui.imread("./Resources/123.jpg");//读入图像
Mat dst=new Mat(image.rows(),image.cols(),CvType.CV_8UC1);//新建目标输出图像
Imgproc.cvtColor(image, dst,Imgproc.COLOR_RGB2GRAY);//进行图像彩色空间转换
String filename = "./Result/gray.jpg";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, dst);//保存图像到Result目录中
}
}
运行结果