Python cv.矩形显示在错误位置
我正在使用violaJones对面部特征进行分割,但突然发现索引或cv.rectangle特征都有问题。 下面的代码只是对代码中出现的问题进行了简化Python cv.矩形显示在错误位置,python,opencv,multidimensional-array,Python,Opencv,Multidimensional Array,我正在使用violaJones对面部特征进行分割,但突然发现索引或cv.rectangle特征都有问题。 下面的代码只是对代码中出现的问题进行了简化 import cv2 as cv img = cv.imread('/Users/david/Desktop/Grimmanet/Images/neutral.jpg') roi_color = img[212:212+544, 183:183+544] cv.rectangle(roi_color, (315,132),(108,38), (
import cv2 as cv
img = cv.imread('/Users/david/Desktop/Grimmanet/Images/neutral.jpg')
roi_color = img[212:212+544, 183:183+544]
cv.rectangle(roi_color, (315,132),(108,38), (255, 255, 255), 2)
cv.imshow('img',roi_color)
cv.waitKey(0)
cv.destroyAllWindows()
roi_color是img中包含人脸的部分,然后我计算出由(315132108,38)(x,y,w,h)给出的矩形应该是眉毛的部分。但相反,当表演处于与给定位置完全不同的位置时
矩形未定位在指定点(315132)。
我真的不知道问题可能是什么,即使在这个简单的工作流中,问题仍然存在
感谢您的帮助根据的文档,函数的签名为 cv2.矩形(img、pt1、pt2、颜色[、厚度[、线型[、偏移]]) 其中,
pt1
是矩形的一个角(通常为左上角),而pt2
是对角穿过矩形的一个角
所以,要得到正确的形状,你需要
width = 108
height = 38
pt1 = (315, 132)
pt2 = (pt1[0] + width, pt1[1] + height)
cv.rectangle(roi_color, pt1, pt2, (0, 0, 255), 2)
结果是
所以发生的事情是,
(108,38)
,也就是你的矩形的宽度和高度,被作为矩形的第二个顶点,对角穿过(315132)
。这意味着函数从右下角(315132)
到左上角(108,38)
绘制了矩形。根据的文档,函数的签名为
cv2.矩形(img、pt1、pt2、颜色[、厚度[、线型[、偏移]])
其中,pt1
是矩形的一个角(通常为左上角),而pt2
是对角穿过矩形的一个角
所以,要得到正确的形状,你需要
width = 108
height = 38
pt1 = (315, 132)
pt2 = (pt1[0] + width, pt1[1] + height)
cv.rectangle(roi_color, pt1, pt2, (0, 0, 255), 2)
结果是
所以发生的事情是,
(108,38)
,也就是你的矩形的宽度和高度,被作为矩形的第二个顶点,对角穿过(315132)
。这意味着函数从右下角(315132)
到左上角(108,38)
我猜,(315132)、(108,38)
是原始图像中的坐标。因此,您需要计算裁剪图像中的眼睛棕色。事实上,即使矩形在宽度和高度上与指定的矩形完全不同,它们也不是。谢谢你的帮助我猜,(315132)、(108,38)
是原始图像中的坐标。因此,您需要计算裁剪图像中的眼睛棕色。事实上,即使矩形在宽度和高度上与指定的矩形完全不同,它们也不是。谢谢你的帮助谢谢!这真的解决了我的问题,帮助我理解!谢谢这真的解决了我的问题,帮助我理解!