Я борюсь с обрезкой изображения до размера прямоугольника, который помещается внутри изображения. Это исходное изображение:
![this is my original image](https://i.stack.imgur.com/32U4f.png)
До сих пор я мог его ввести, преобразовать его цвета в цветовое пространство HSV и применить к нему пороговое значение. Пока это мой код:
import cv2
#Read input image
img = cv2.imread('rdm_generated_image.png')
#convert from BGR to HSV color space
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
#get the saturation plane - all black/white/gray pixels are zero, and colored pixels are above zero.
s = hsv[:, :, 1]
#apply threshold on s
ret, thresh = cv2.threshold(s, 8, 255, cv2.THRESH_BINARY)
#invert colors, so every dark spots are now white
image = cv2.bitwise_not(thresh)
cv2.imwrite("image.png", image)
После этого программа выдаст следующее:
![output](https://i.stack.imgur.com/1aYEy.png)
Теперь я хочу обрезать изображение до большой рамки только посередине, но я не могу определить его контуры.
![Crop it to this size](https://i.stack.imgur.com/iTgME.png)
Я пробовал с этим cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
и несколько других функций, но я пока не добился успеха. Если это неправильный способ, поправьте меня. Помощь приветствуется, так как я немного неопытен с OpenCV.
Заранее спасибо!