我用MATLAB生成该图像(使用bwareaopen
)。 在中间我有一个2D椭圆形。 如何清除所有的“噪音”的它周围,并得到清晰的椭圆形?
原始图像
我用MATLAB生成该图像(使用bwareaopen
)。 在中间我有一个2D椭圆形。 如何清除所有的“噪音”的它周围,并得到清晰的椭圆形?
原始图像
看看这个解决方案。 正如在评论中提到我用狗-高斯差分
什么是狗呢?
首先,你要拍摄图像的两个独立的高斯两个独立的内核。 (高斯我的意思是申请荷兰国际集团高斯模糊 )。 两个生成物的差异被称为狗 。
这是我做的:
(如果你专注地看你可以看到其中的差别)。
您可以完善这一过程中得到了提高图像。
编辑:
下面是我使用的代码:
import cv2
filename = 'Cell.jpg'
img = cv2.imread(filename)
cv2.imwrite('img.jpg',img)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.jpg',gray)
bi = cv2.bilateralFilter(gray,7,75,75)
cv2.imwrite('bi.jpg',bi)
blur = cv2.GaussianBlur(bi,(3,3),0)
cv2.imwrite('blur.jpg',blur)
blur1 = cv2.GaussianBlur(bi,(17,17),0)
dog = blur1 - bi
cv2.imwrite('DoG.jpg',dog)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
close = cv2.morphologyEx(dog, cv2.MORPH_CLOSE, kernel, 13)
cv2.imwrite('close.jpg',close)
median = cv2.medianBlur(close,3)
cv2.imwrite('median.jpg',median)
cv2.waitKey(0)
cv2.destroyAllWindows()