python - 如何通过 Python 检测图像的 Miss-Moving Pattern
问题描述
我有一个图像,是规则的图案。我希望可以有一个 Python 代码来帮助指示“Miss-Moving”位置的边界框,是目标,例如:
目标
我曾尝试在侵蚀后再次进行灰色,侵蚀,阈值,侵蚀,结果为:
加里
加里侵蚀
阈值灰蚀
侵蚀阈值-灰色-侵蚀
我不知道下一步该怎么做,或者欢迎对这项工作提出任何意见。谢谢。
这是我的 Python 代码:
# Define Display & Save image function
def displayIMG(img, windowName):
cv2.namedWindow(windowName, cv2.WINDOW_NORMAL)
cv2.imshow(windowName, img)
cv2.imwrite(windowName + '.jpg', img)
#1.Read image file & Show out
image = cv2.imread(image_filename)
displayIMG(image, "Original")
#2. Gray
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
name = "Gray"
draw = gray
displayIMG(draw, name)
#3. Erosion
kernel = np.ones((3, 3), np.uint8)
erosion = cv2.erode(gray, kernel, iterations=2)
name = "Gary_Erosion"
draw = erosion
hist = plotHistogram(draw, name)
max_gray = max(hist)
print('Max Gray = ', max_gray)
displayIMG(draw, name)
#4. Threshold
(T, thresh) = cv2.threshold(gray, 120, 255, cv2.THRESH_TOZERO)
name = "Threshold_Gray"
draw = thresh
displayIMG(draw, name)
plotHistogram(draw, name, max_gray)
#5. Erosion again
kernel = np.ones((3, 3), np.uint8)
erosion2 = cv2.erode(draw, kernel, iterations=5)
name = "Gary_Threshold_Erosion"
draw = erosion2
hist = plotHistogram(draw, name, max_gray)
displayIMG(draw, name)
解决方案
推荐阅读
- python - 在 Python 中提示输入时,如何允许用户输入多行?当按下 Enter 或在输入中使用 /n 时,它不起作用
- encoding - 西班牙文“ñ”eñe 0xa4和大写eñe 0xa5采用什么编码?
- javascript - 在 CefSharp 获得焦点之前加载页面
- r - 如何处理R中数据框中字符类型的空记录?
- javascript - 如何将按钮更改为可点击的图像
- python - Counting down lives in python turtle
- arrays - 将一个数组分成两个表格视图单元格
- github - github 页面无法将表中的 .md 转换为 .html
- python - 如何根据 Python 中每个字符串内的浮点数对列表进行排序?
- python - 检测鼠标悬停并在鼠标悬停时发出声音?