#使用跟踪栏,用于调整图像中的矩形的宽度和高度。图像大小为320*240,其中宽度和高度的起止值分别为10和20,矩形的中心为图像中心。拖动跟踪栏可以放到矩形,缩小无效
import numpy as np
import cv2
img =np.zeros((240,320,3), np.uint8)+255 #创建一幅白色色图像
img3 = img2 = cv2.rectangle(img,(155,110),(165,130),(0,0,255),-1)#画矩形,红色填充
def doChange(x):
global img
W = cv2.getTrackbarPos('W','showbgr')
H = cv2.getTrackbarPos('H','showbgr')
if W <= 5 or H <= 10:
img3 = img2 # 重置为初始矩形
else:
img3 = cv2.rectangle(img2, (160 - W, 120 - H), (160 + W, 120 + H), (0, 0, 255), -1) # 画矩形,红色填充
cv2.namedWindow('showbgr')
cv2.createTrackbar('W','showbgr',5,160,doChange)
cv2.createTrackbar('H','showbgr',10,120,doChange)
while(True):
cv2.imshow('showbgr',img3)
k = cv2.waitKey(1)
if k == 27:
break
cv2.destroyAllWindows()
参考GPT和自己的思路:
为了实现在图像中调整矩形的宽度和高度,可以使用OpenCV中的createTrackbar方法创建跟踪栏。在这个特定的问题中,宽度和高度的起止值是10和20,同时矩形的中心位于图像的中心。根据这些要求,可以在doChange函数中实现以下操作:
最终的结果应该是一个包含跟踪栏的窗口,在该窗口中,你可以通过拖动跟踪栏修改矩形的宽度和高度。请注意,缩小操作是无效的。
具体的代码实现请参考上面的代码,其中包括设置窗口和跟踪栏,以及处理跟踪栏事件的代码。