"chuyuhuntou": ["chuyuhuntou.jpg","luodibao.jpg"]这个列表有两个图片,做一个画框的函数,鼠标左键拖动画框,鼠标右键结束画框,需要在画框的过程中看到框线
时间: 2023-07-24 22:13:55 浏览: 82
61--[给小甲虫画个框].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码
好的,根据你的要求,我会在两张图片上实现画框的功能,并且在画框的过程中能够即时看到框线。以下是一个示例代码,使用Python和OpenCV库来实现:
```python
import cv2
# 创建画框的回调函数
def draw_rectangle(event, x, y, flags, param):
global drawing, top_left_pt, bottom_right_pt, img_copy
if event == cv2.EVENT_LBUTTONDOWN: # 鼠标左键按下
drawing = True
top_left_pt = (x, y)
elif event == cv2.EVENT_LBUTTONUP: # 鼠标左键释放
drawing = False
bottom_right_pt = (x, y)
cv2.rectangle(img_copy, top_left_pt, bottom_right_pt, (0, 255, 0), 2)
elif event == cv2.EVENT_MOUSEMOVE and drawing: # 鼠标移动
img_copy = img.copy()
cv2.rectangle(img_copy, top_left_pt, (x, y), (0, 255, 0), 2)
cv2.imshow('image', img_copy)
# 图片列表
image_list = ["chuyuhuntou.jpg", "luodibao.jpg"]
for image_path in image_list:
# 读取图片
img = cv2.imread(image_path)
img_copy = img.copy()
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_rectangle)
drawing = False
top_left_pt, bottom_right_pt = (-1, -1), (-1, -1)
while True:
cv2.imshow('image', img_copy)
# 按下ESC键退出当前图片,按下'q'键退出程序
key = cv2.waitKey(1)
if key == 27: # ESC键
break
elif key == ord('q'):
exit()
cv2.destroyAllWindows()
```
该代码会循环遍历图片列表中的每张图片,然后在每张图片上实现画框的功能。你可以使用鼠标左键拖动来画框,在画框的过程中能够即时看到框线。绘制的框会以绿色边框显示在窗口中。按下ESC键可以退出当前图片的绘制,按下'q'键可以退出程序。
请确保将图片文件(chuyuhuntou.jpg和luodibao.jpg)与代码文件放在同一目录下或者提供正确的图片路径。
希望这个例子对你有帮助!如果还有其他问题,请随时提问。
阅读全文