【发布时间】:2022-10-26 04:01:04
【问题描述】:
我正在尝试检测黑色背景上的黑色胶带。
没有胶带,有胶带(裁剪图片):
我首先从原始图像中裁剪了磁带的区域,然后对其进行阈值处理。下面是没有胶带时的图像:
您可以注意到有一条几乎实线。黑色胶带放在它旁边,当它被放置时,这条线变得很轻。下面是图片:
有没有什么好的图像处理技术可以用来检测何时放置黑色胶带以及何时未放置黑色胶带?
以下是我目前正在使用的代码:
import cv2
import os
import imutils
from pathlib import Path
import numpy as np
def on_mouse(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("X: {} | Y: {}".format(x, y))
dirPath = Path(__file__).parents[2]
imgPath = os.path.join(dirPath, "img", "img.png")
win_name = "Image"
cv2.namedWindow(win_name)
cv2.setMouseCallback(win_name, on_mouse)
img = cv2.imread(imgPath)
img = imutils.resize(img, width=800)
roiImg = img[298:337, 520:591]
img_gray = cv2.cvtColor(roiImg, cv2.COLOR_BGR2GRAY)
rett, thresh = cv2.threshold(img_gray, 50, 255, cv2.THRESH_BINARY)
cv2.imshow(win_name, img)
cv2.imshow("Thres", thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
这是测试视频的链接:https://drive.google.com/file/d/1P3Xkx_SuHidDs1UdacS3-DZqA-CiXQOX/view?usp=sharing
下面是通常放置胶带的区域用红色标记的图像
谢谢
【问题讨论】:
-
你展示了很多正在发生的图片。请专注于对您重要的领域。 ——这会是某种自动光学检测吗?如果是这样,则该工作场所和摄像头未设置为它。
-
@ChristophRackwitz 我添加了显示通常放置磁带的区域的图像。因为它是黑底黑检测,所以很难通过图像来解释,这就是我添加视频的原因。我不确定光学检查,但会搜索一下
-
该对象移动......对齐(在这里,ECC细化可能很好),然后是像素差异。图片的那部分很小。将相机移近很多。看看你能不能阻止东西四处移动。通常,光学检测也要求事物始终位于完全相同的位置。
-
您还在寻找解决方案吗?
-
@AnnZen 是的,但作为临时解决方案,我使用的是手部检测模型。因此,一旦手部检测模型检测到黑带的 roi 中的手部,我就认为它已完成。
标签: python opencv image-processing computer-vision