Image processing 如何检测图像中的盐和胡椒点?
我已经在一个项目上工作了几个星期,以检测机器产生的缺点,但找不到任何好的解决方案。不知道你们能不能给我一些线索 损坏的图像显示如下。坏点是非常亮或暗的点。这些要点具有以下特点:Image processing 如何检测图像中的盐和胡椒点?,image-processing,deep-learning,object-detection,Image Processing,Deep Learning,Object Detection,我已经在一个项目上工作了几个星期,以检测机器产生的缺点,但找不到任何好的解决方案。不知道你们能不能给我一些线索 损坏的图像显示如下。坏点是非常亮或暗的点。这些要点具有以下特点: 相对较大或较小的强度 它们大多是一个或两个像素加在一起 我所尝试的: 我把它们当作哈里斯·康纳,用更大的梯度来检测它们。但是,边缘中的某些点也具有较大的渐变。另外,梯度阈值不易确定。较小的阈值引入假阳性,较大的阈值引入假阴性 由于坏点相对于其局部区域具有更大或更小的强度,因此我计算除中心点之外的平均强度,并将其与中心点
如果你能在这个问题上给我一些线索,我将不胜感激。非常感谢你 您可以尝试使用半径较小的中值滤波器(3x3或5x5)。然后,当与原始图像的差异较大时,检测椒盐和噪声。利用Numpy检测范围内的像素强度
[0255]
最小/最大阈值可以工作。其思想是创建一个所有像素的遮罩,大于亮点的某个阈值,小于暗点的另一个阈值。检测到的点用绿色表示
导入cv2
将numpy作为np导入
image=cv2.imread('1.png')
灰色=cv2.CVT颜色(图像,cv2.COLOR\u BGR2GRAY)
遮罩=((灰色>=200)|(灰色无法访问的图像,不要使用远程服务器。的缺点似乎是噪音。同时,你是如何计算分类器的准确度的?@Masoud谢谢你的回答!是的,我也这么认为。我标记了大约几千个点,并将它们分为训练集和验证集。我在验证集ba上计算它们基于标签。当然,我在测试时平衡了阴性和阳性样本。如何估计相邻像素的像素强度差并设置阈值,然后将像素分类为噪声或正常?您可以根据需要的复杂性检查4个相邻像素或8个相邻像素。我建议这样做,因为这里是像素强度的一个明显区别。这在计算上并不重,与深度学习模型(如果你打算尝试一个)相比,你应该能够上传图像,它们只是链接而不是内联显示。但是,它们将在SO的图像服务器上,其他用户将能够为你内联@李悦城: 你试过了吗?不,你没有。事实上,我试过了。我在分类器中使用了这个功能。虽然它很有用,但还不够@李悦城: 你的意思是你把噪音输入你的分类器吗@李悦城: 你真的在训练这种差异吗?是的。我还使用了其他功能,如像素值。这对salt和papper噪声很好,它们的像素值在全局上是大的还是小的。但是,我的问题与脉冲噪声有关,它们的像素值在局部上是大的还是小的。
import cv2
import numpy as np
image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
mask = ((gray >= 200) | (gray <= 100))
image[mask] = [36,255,12]
cv2.imshow('image', image)
cv2.waitKey()