从文件夹中识别图片中的灯条,并在原图中用矩形框框出(该图片与灯条均要保存至lightbar)。 - 将灯条裁剪下来保存至lightbar文件夹,斜的灯条要正放,然后保存至lightbar
时间: 2024-02-28 11:51:57 浏览: 13
以下是 Python 中使用 OpenCV 库实现该任务的简单代码示例:
```python
import cv2
import os
# 读取文件夹中的图片
img_folder = 'path/to/folder'
img_files = os.listdir(img_folder)
# 循环处理每张图片
for img_file in img_files:
# 读取图片
img_path = os.path.join(img_folder, img_file)
img = cv2.imread(img_path)
# 图像处理,识别灯条并用矩形框出
# 这里给出一个简单的处理方法,仅供参考
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, binary = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
area = cv2.contourArea(contour)
if area > 100:
rect = cv2.minAreaRect(contour)
box = cv2.boxPoints(rect)
box = box.astype(int)
cv2.drawContours(img, [box], 0, (0, 0, 255), 2)
# 裁剪灯条并保存至指定文件夹
x1, y1 = box[0]
x2, y2 = box[2]
w, h = x2 - x1, y2 - y1
roi = img[y1:y1+h, x1:x1+w]
if w < h:
roi = cv2.rotate(roi, cv2.ROTATE_90_CLOCKWISE)
lightbar_path = 'path/to/lightbar'
cv2.imwrite(os.path.join(lightbar_path, img_file), roi)
# 保存原图和带矩形框的图像
lightbar_img_path = 'path/to/lightbar'
cv2.imwrite(os.path.join(lightbar_img_path, img_file), img)
```
需要注意的是,这只是一个简单的示例代码,仅供参考。实际应用中,需要更加细致地处理图像,调整参数等。同时,还需要考虑一些特殊情况,如光线变化、遮挡等。