Автоматическая обрезка изображения
- Что имеется?
Некоторый массив фото на котором имеются кабели закрепленные на белом стенде (один из экземпляров будет прикреплен).
- Что требуется?
Обрезать изображение так, чтобы изображение было по границам белого стенда.
- В чем проблема?
Требуется автоматизировать процесс, чтобы каждый раз вручную не вбивать координаты границ стенда. Существуют ли готовые решения для подобных случаев? Если нет, то как подобное можно решить?
Экземпляр фото:
Ответы (1 шт):
Автор решения: Alex Alex
→ Ссылка
Бинаризацией выделяем светлую область, морфологическими операциями удаляем шумы:
import cv2
import numpy as np
file = "xCEXQ.jpg"
original = cv2.imread(file)
gray = cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)
(_ret, threshold) = cv2.threshold(gray, 90, 255, cv2.THRESH_BINARY)
kernel2=cv2.getStructuringElement(cv2.MORPH_RECT,(25,25))
open_image=cv2.morphologyEx(threshold, cv2.MORPH_OPEN, kernel2)
y_nonzero, x_nonzero = np.nonzero(open_image)
crop=original[np.min(y_nonzero):np.max(y_nonzero), np.min(x_nonzero):np.max(x_nonzero),:]
cv2.imshow('crop', crop)
cv2.waitKey(0)

