OpenCV3 Java图形图像上的拉普拉斯平滑(Imgproc.line)
为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。
应用举例:
假设在文本分类中,有3个类,C1、C2、C3,在指定的训练样本中,某个词语K1,在各个类中观测计数分别为0,990,10,K1的概率为0,0.99,0.01,对这三个量使用拉普拉斯平滑的计算方法如下:
1/1003 = 0.001,991/1003=0.988,11/1003=0.011
在实际的使用中也经常使用加 lambda(1≥lambda≥0)来代替简单加1。如果对N个计数都加上lambda,这时分母也要记得加上N*lambda。
代码案例:
package com.what21.opencv.demo; import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class Laplacian { public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat src=Imgcodecs.imread("D:/ShareData/internet.jpg"); //读取图像到矩阵中,取灰度图像 if(src.empty()){ return ; } try{ Mat dst = src.clone(); //复制矩阵进入dst Imgproc.Laplacian(src,dst,0); Imgcodecs.imwrite("D:/ShareData/internet.Laplacian.jpg", dst); }catch(Exception e){ e.printStackTrace(); } } }
评论