到目前为止,我正在尝试使用openCV和python绘制rotatec矩形:
rect = cv2.minAreaRect(boxes[i][1:])
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(image,[box],0,(0,0,255),2)
其中
boxes[i][1:]
是协调数组[xmin,ymin,xmax,ymax]image
是要绘制矩形的图像。但是,这不断抛出
rect = cv2.minAreaRect(boxes[i][1:])
cv2.error: OpenCV(3.4.1) C:\bld\opencv_1520732670222\work\opencv-3.4.1\modules\imgproc\src\convhull.cpp:137: error: (-215) total >= 0 && (depth == 5 || depth == 4) in function cv::convexHull
这是什么意思,我该如何解决?
最佳答案
根据doc of cv2.minAreaRect
,该函数需要一个点集作为输入。因此,如果您给出(xmin, ymin, xmax, ymax)
元组,它将被视为由2个单点(xmin, ymin)
和(xmax, ymax)
组成的点集。因此,找到具有最小面积的旋转矩形,将导致一个空区域矩形(两点之间的线段),这很可能会产生您获得的错误。
我对这个答案不是100%自信,但我想这可能是正确的。
所以我建议用[(xmin, ymin), (xmax, ymax)]
替换[(xmin, ymin), (xmin, ymax), (xmax, ymin), (xmax, ymax)]
并测试它是否解决了问题...
关于python - 将旋转的矩形绘制成图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49819048/