Java OpenCV-从图像中去除噪声

Java OpenCV-从图像中去除噪声,java,opencv,image-processing,Java,Opencv,Image Processing,这是我的形象: 我想从我的图像中去除噪声(小的黑色无关像素)。 我尝试了gaussian、cvtColor和adaptiveThreshold,但都没有成功。 思想?如果您有java代码,这将有所帮助。根据应用程序的不同,噪声消除可能会比较棘手。对于您的图像,简单的形态学操作(如关闭/打开)可以解决此问题。打开操作有助于消除图像中的噪音。闭合将有助于填充现有的孔 由于OpenCV C++ + API类似java,可以使用以下内容: cv::Mat Kernel = cv::Mat(cv::Si

这是我的形象:

我想从我的图像中去除噪声(小的黑色无关像素)。
我尝试了
gaussian
cvtColor
adaptiveThreshold
,但都没有成功。

思想?如果您有java代码,这将有所帮助。

根据应用程序的不同,噪声消除可能会比较棘手。对于您的图像,简单的形态学操作(如关闭/打开)可以解决此问题。打开操作有助于消除图像中的噪音。闭合将有助于填充现有的孔

由于OpenCV C++ + API类似java,可以使用以下内容:

cv::Mat Kernel = cv::Mat(cv::Size(Maximum_Width_of_Noise,Maximum_Height_of_noise),CV_8UC1,cv::Scalar(255));

cv::morphologyEx(Input_Image,temp,cv::MORPH_OPEN,Kernel);
cv::morphologyEx(temp,Output_Image,cv::MORPH_CLOSE,Kernel);
有很多方法,但这里需要在准确性/速度之间进行权衡

上述操作的结果是:


你试过“侵蚀”吗?你应该看看形态学操作,如:打开、关闭、侵蚀、扩张。我将最大高度和宽度设置为3,结果如上图所示。为了完全填充数字,你可以在最终图像上设置一个阈值,以便得到一个漂亮干净的数字。。。。我很高兴我终于设法帮助了这么多人!!!!:]好吧,gj,我会尽力按照你的建议塑造我的形象。@omriman12你用Java做的吗?我已经试过了,但对我不起作用,我看不到图像上有任何变化。糟糕的是,它正在工作
public static void去噪(String imgInPath,String imgOutPath){Mat image=Highgui.imread(imgInPath);Mat out=new Mat();Mat tmp=new Mat Mat();Mat kernel=new Mat(新大小(3,3),CvType.cvu 8UC1,新标量(255));Imgproc.morphologyEx(image,tmp,Imgproc.MORPH_OPEN,kernel);Imgproc.morphologyEx(tmp,out,Imgproc.MORPH_CLOSE,kernel);Highgui.imwrite(imgOutPath,out);}