Обрезать цветное изображение в соответствии с порогом ОцуPython

Программы на Python
Ответить
Anonymous
 Обрезать цветное изображение в соответствии с порогом Оцу

Сообщение Anonymous »

У меня есть цветное изображение, к которому я успешно применил метод определения порога Оцу к его форме в оттенках серого, чтобы получить контур печенья:
Исходное цветное изображение:
Изображение

Пороговое изображение Оцу:
Изображение

Я хотел бы извлечь из цветного изображения только пиксели в черной части порогового изображения Оцу и сохранить его как новое изображение. До сих пор я пытался извлечь изображение с помощью метода BITWISE_NOT и использования «thresh_inv» в качестве маски, однако в результате получалось только это изображение (оттенки серого + дополнительный черный фон). Я также попробовал использовать метод контуров Кэнни, чтобы определить приблизительный контур бисквитного круга, а затем нарисовал контуры на пустом изображении, чтобы попытаться наложить его на исходное цветное изображение. Это также не сработало.
Изображение

Вот мой код, я был бы очень признателен за любую помощь, поскольку я пытался разобраться в нем целую вечность.

Код: Выделить всё

import numpy as np
import cv2 as cv2

picture = cv2.imread('Cropped_6.png',0)
blurred_picture = cv2.GaussianBlur(picture, (15,15), cv2.BORDER_DEFAULT)
# canny_picture = cv2.Canny(blurred_picture, 41,41)
# cv2.imshow('Blurred', canny_picture)

# Simple Thresholding
threshold, thresh = cv2.threshold(blurred_picture, 105, 255, cv2.THRESH_OTSU)
# contours, hierarchies = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
thresh_inv = cv2.bitwise_not(thresh)
foreground = cv2.bitwise_and(picture, picture, mask=thresh_inv)

cv2.imwrite('Attempt_1.png',foreground)

# cv2.drawContours(blank_picture, contours[:0], -1, (0,0,255), 1)
cv2.imshow('Original', picture)
cv2.waitKey(0)
Это пример того, что я получу в результате (только печенье с прозрачным фоном в содержащем его прямоугольнике, поскольку даже круги сохраняются как прямоугольные изображения):
Желаемый результат:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/654 ... -threshold
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»