Как получить 4 на 4 ограничительных рамки изображения и соответствующие им координаты? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь получить 4 на 4 ограничивающие рамки изображения. Как эта ограничительная рамка

Ограничивающие рамки

Может кто-нибудь помочь мне, как получить эти ограничивающие рамки и их координаты?

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Чтобы создать прямоугольник, используйте этот фрагмент кода.

import cv2

cv2.rectangle(img, (x1, y1), (x2, y2), (255,0,0), 2)


x1,y1 ------
|          |
|          |
|          |
--------x2,y2

А если вы хотите нарисовать собственный ROI, используйте этот фрагмент кода.

import cv2
import numpy as np

if __name__ == '__main__' :

    # Read image
    im = cv2.imread("image.jpg")

    # Select ROI
    r = cv2.selectROI(im)

    # Crop image
    imCrop = im[int(r[1]):int(r[1]+r[3]), int(r[0]):int(r[0]+r[2])]

    # Display cropped image
    cv2.imshow("Image", imCrop)
    cv2.waitKey(0)
0 голосов
/ 17 июня 2019

Насколько я понимаю, вы пытаетесь визуально разделить входное изображение на 4 квадрата. В этом случае все, что вам нужно, это нарисовать две линии: одну горизонтальную, одну вертикальную. см. Функции рисования в документации OpenCV . Быстрый пример:

import cv2

height, width = input_image.shape[:2]

# for horizontal line
horizontal_left = (0, int(height / 2))
horizontal_right = (int(width), int(height / 2))

cv2.line(input_image, horizontal_left, horizontal_right, (0, 255, 0), 1)

# for vertical
vertical_top = (int(width / 2), 0)
vertical_bottom = (int(width / 2), int(height))

cv2.line(input_image, vertical_top, vertical_bottom, (0, 255, 0), 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...