图像灰度化处理有2中方式:
注:参数IMREAD_GRAYSCALE表示图片灰度
1.加载时指定灰度参数
Mat mat = Imgcodecs.imread("/data/data/WindowsLogo.jpg", Imgcodecs.IMREAD_GRAYSCALE);
2.使用cvtColor转换成灰度图像
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
示例代码:
package test.opencv;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* 图片灰度化处理
* @author hecj
*/
public class Grayscaler {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 第一种 加载时灰度
Mat mat = Imgcodecs.imread("/data/data/WindowsLogo.jpg", Imgcodecs.IMREAD_GRAYSCALE);
Imgcodecs.imwrite("/Users/hecj/Desktop/WindowsLogo.jpg", mat);
// 第二种 转换灰度图像
Mat src = Imgcodecs.imread("/data/data/WindowsLogo.jpg", Imgcodecs.IMREAD_UNCHANGED);
Mat dst = new Mat();
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
Imgcodecs.imwrite("/Users/hecj/Desktop/WindowsLogo2.jpg", mat);
}
}
图像如下: