java图片二值化_实现图像的二值化(java+opencv)
書里的解釋:
其他的沒找到什么資料,直接參考百度百科
具體是先實現灰度化,然后實現二值化。
里面提到了opencv里的兩個接口
1.Imgproc.threshold(Mat src, Mat dst, double thresh, double maxval, int type)
參數:
src 原圖
dst 輸入圖像
thresh 當前閾值
maxval 最大閾值一般為255
type 閾值類型
2.Imgproc.adaptiveThreshold(Mat src, Mat dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
參數:
src 要二值化的灰度圖
dst 二值化后的圖
maxValue 二值化后要設置的那個值
adaptiveMethod 塊計算的方法
thresholdType 二值化類型
blockSize 塊大小(奇數,大于1)
C 差值(負值也可以)
實現代碼如下:
packagepart;importorg.opencv.core.Core;importorg.opencv.core.Mat;importorg.opencv.imgcodecs.Imgcodecs;importorg.opencv.imgproc.Imgproc;//二值化
public classThreshold {public static voidmain(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);//加載時灰度
Mat src = Imgcodecs.imread("./data/yasuo.png", Imgcodecs.IMREAD_GRAYSCALE);//保存灰度
Imgcodecs.imwrite("./data/yasuo_1.png", src);
Mat target= newMat();//二值化處理
Imgproc.threshold(src, target, 0, 255, Imgproc.THRESH_BINARY | Imgproc.THRESH_OTSU);//灰度圖像二值化//保存二值化后圖片
Imgcodecs.imwrite("./data/yasuo_2.png", target);
Imgproc.adaptiveThreshold(src, target,255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY, 5, 0);//保存二值化后圖片
Imgcodecs.imwrite("./data/yasuo_3.png", target);
}
}
這里兩個接口的效果都進行了測試:
原圖
threshold方法處理:
adaptiveThreshold方法處理:
總結
以上是生活随笔為你收集整理的java图片二值化_实现图像的二值化(java+opencv)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话空间统计之:空间自相关
- 下一篇: python老男孩scrapy视频刷课记