我想从显微镜图像中去除背景噪音。我尝试了不同的方法(组均衡和形态转换方法),但我得出结论,最好的方法是去除低强度像素。 我可以用photoshop做到这一点: 如您所见,图A是原始的。我已经包含了直方图,如下图所示。在B中应用变换,我得到所需的最终图像,其中背景被移除。请参阅我在B的底部插入中应用的转换。
我开始处理python代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('lamelipodia/Lam1.jpg', 1)
#get green channel to gray
img_g = img[:,:,1]
#get histogram
plt.hist(img_g.flatten(), 100, [0,100], color = 'g')
cv2.imshow('b/w',img_g)
#cv2.imwrite('bw.jpg',img_g)
plt.show()
cv2.waitKey(0)
cv2.destroyAllWindows()
得到直方图: 这与photoshop中的相似。 我一直在浏览谷歌和SO,但虽然我发现了类似的问题,但我找不到如何修改直方图。
如何使用python(numpy或openCV)应用这种转换?或者,如果您认为此前已得到回复,请告知我们。我道歉,但我一直在寻找这个。
答案 0 :(得分:1)
关注Piglet链接: docs.opencv.org/3.3.1/d7/d4d/tutorial_py_thresholding.html,目标所需的功能是:
TaggedType 'Nothing = ()
这不容易阅读。 我们必须理解为: 如果image_g中的任何像素小于150,则将其设为零,保持其余值与原来的值相同。 如果我们将其应用于图像,我们得到:
关于如何阅读该功能的技巧是增加的风格。例如,cv2.THRESH_BINARY使其读取为: 如果image_g中的任何像素小于150,则将其设为ZERO(黑色),其余为255(白色)