我正在检测如下材料:我尝试检测棕色晶体并进行圆形检测或矩形检测,但仍然有很多噪音我尝试像下面这样使用 hsv:canny = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)lower_red = np.array([15,10,50])upper_red = np.array([150,110,160])edged = cv2.inRange(canny, lower_red, upper_red)...或使用这个。但没有人帮忙。imgray= cv2.GaussianBlur(imgray, (7,7),0)ret, thresh = cv2.threshold(imgray, 237, 28, 37)edged = cv2.Canny(imgray, 5, 5)edged = cv2.dilate(edged, None, iterations=1)edged = cv2.erode(edged, None, iterations=1)有什么我可以做的吗?
1 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
我认为您正在寻找的是形态学关闭操作。
from PIL import Image
import cv2
import matplotlib.pyplot as plt
img = Image.open('./n2JCm.png')
img_np = np.array(img)
img_np_rgb = cv2.cvtColor(AA,cv2.COLOR_RGBA2RGB)
plt.figure(figsize=(35,35))
plt.imshow(cv2.morphologyEx(img_np_rgb,cv2.MORPH_CLOSE,np.ones((2,2)),iterations=10))
你会得到看起来像这样的东西:
这应该可以去除你的小污垢。
我也会尝试使用 KMeans 或 DBScan 进行聚类
from sklearn import cluster
model = cluster.KMeans(3)
plt.figure(figsize=(35,35))
plt.imshow(model.fit_predict(img_np_rgb.reshape((-1,3))).reshape(img_np_rgb.shape[:2]))
或其他一些聚类算法。
添加回答
举报
0/150
提交
取消