看看这个解决方案。正如我使用的 cmets 中提到的那样 DoG - 高斯差异
DoG 是什么意思?
首先,您必须对具有两个单独内核的图像获取两个单独的高斯函数。 (高斯我的意思是应用 高斯模糊)。两个结果的差异称为DoG。
这就是我所做的:
(如果您仔细观察,您会发现差异)。
- 现在用上面两张图进行DoG得到这个:(我只是减去上面两张图)
- 然后我使用椭圆内核执行形态学运算来增强单元格的边缘:
- 为了去除图像周围不需要的斑点,我执行了中值滤波,最后得到了:
您可以优化此过程以获得增强图像。
编辑:
这是我使用的代码:
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()