写一个用opencv检测烟盒的代码
时间: 2024-04-30 13:17:58 浏览: 53
以下是一个简单的基于 OpenCV 的烟盒检测代码示例:
```python
import cv2
# 加载图像并转换为灰度图像
img = cv2.imread('smoking.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 加载烟盒模板并转换为灰度图像
template = cv2.imread('template.jpg', 0)
# 使用模板匹配算法进行匹配
res = cv2.matchTemplate(gray, template, cv2.TM_CCOEFF_NORMED)
# 设置匹配阈值
threshold = 0.8
# 获取匹配结果中大于阈值的坐标
loc = cv2.findNonZero(res > threshold)
# 在原始图像中绘制矩形框
for pt in loc:
x, y = pt[0]
cv2.rectangle(img, (x, y), (x + template.shape[1], y + template.shape[0]), (0, 0, 255), 2)
# 显示结果
cv2.imshow('Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例代码中,我们使用 `cv2.imread()` 加载原始图像和烟盒模板,然后使用 `cv2.cvtColor()` 将原始图像转换为灰度图像。接下来,我们使用 `cv2.matchTemplate()` 函数进行模板匹配,并使用阈值来过滤掉匹配值低于阈值的结果。最后,我们使用 `cv2.rectangle()` 在原始图像中绘制矩形框来标记烟盒的位置。
阅读全文