简体   繁体   中英

Rectangles overlapping

I am using opencv to draw rectangles over images with the xmin, ymin, xmax, ymax value of the rectangles given in a list.

List of point is

points = [(1707.0, 1865.0, 2331.0, 2549.0),(1348.0, 1004.0, 1987.0, 1746.0),(749.0, 2129.0, 1674.0, 2939.0) ,(25.0, 1134.0, 1266.0, 2108.0),(253.0, 1731.0, 1403.0, 2449.0)]

image = cv2.imread("pathtoimage")
for point in points:
    xmin,ymin,xmax,ymax = point
    result_image = cv2.rectangle(image, (int(xmin), int(xmax)), (int(ymin),int(ymax)), (0,255,0), 8)
    os.remove("/home/atul/Documents/CarLabel/imagemapping1-wp-BD489663-BD55-484E-9EA7-EB5662B626B9.png")
    cv2.imwrite("/home/atul/Documents/CarLabel/imagemapping1-wp-BD489663-BD55-484E-9EA7-EB5662B626B9.png",result_image)

Rectangles are getting overlapped into each other. How can I resolve this.

Original Image

在此处输入图片说明

Resulting image

在此处输入图片说明

cv2.rectangle needs the coordintates of top-left and bottom-right points. So you should use:

result_image = cv2.rectangle(image, (int(xmin), int(ymin)), (int(xmax),int(ymax)), (0,255,0), 8)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM