threshold二值化----opencv2.4.11(Java)
1、threshold()
函数原型:public static double threshold(Mat src,Mat dst,double thresh,double maxval,int type)
Imgproc.threshold(source, destination, thresh , maxval , type);
org.opencv.imgproc.Imgproc.threshold
2、示例实现
(1)新建java工程,名为Thresh_IMG,新建一个类“Thresh_IMG”。
(2)新建一个文件夹“Resources”,并将待处理图像拷贝进去,然后新建一个文件夹“Result”,用于输出图像的输出。
(3)添加“OpenCV-2.4.11”。
代码:
import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.highgui.Highgui; import org.opencv.imgproc.Imgproc; public class Thresh_IMG { public static void main(String[] args) { // TODO Auto-generated method stub try{ //加载opencv库 System.loadLibrary("opencv_java2411"); //读取原图像 Mat image = Highgui.imread("./Resources/abc.jpg"); //建立灰度图像存储空间 Mat dst=new Mat(image.rows(),image.cols(),CvType.CV_8UC1); //彩色图像灰度化 Imgproc.cvtColor(image, dst,Imgproc.COLOR_RGB2GRAY); //保存灰度图像 Highgui.imwrite("./Result/gray.jpg", dst); //建立图像二值化存储空间 Mat B_img=new Mat(image.rows(),image.cols(),CvType.CV_8UC1); //图像二值化 Imgproc.threshold(dst,B_img,100,255,Imgproc.THRESH_TOZERO); //图像保存输出 Highgui.imwrite("./Result/ThreshZero.jpg", B_img); } catch (Exception e) { System.out.println("error: " + e.getMessage()); } } }
结果