图片的二值化和反二值化的意思是把图片的颜色变成纯黑色或者纯白色
两者正好相反
上代码
package com.xs.test.erzhihua;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class Erzhihua {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);// 只要是用opencv 就得用
Mat image = Imgcodecs.imread("F:/opencv/mn.png", 0);// 读取图片,第二个参数是图片读取方式0:灰度 1,彩色
HighGui.imshow("原图", image);// 显示读取的图片
//二值化
Mat image2 = new Mat();
//在127到255之间的都变成白色
Imgproc.threshold(image, image2, 127, 255, Imgproc.THRESH_BINARY );
HighGui.imshow("二值化", image2);
//反二值化
Mat image3 = new Mat();
//在127到255之间的都变成黑色
Imgproc.threshold(image, image3, 127, 255, Imgproc.THRESH_BINARY_INV );
HighGui.imshow("反二值化", image3);
HighGui.waitKey();// 阻塞进程
HighGui.destroyAllWindows(); // 销毁窗口
}
}
效果图