Я новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографий

Я новичок в питоне. Я знаю основы предварительной обработки изображений. Я не знаю, как удалить фон и обрезать изображения ниже, используя open cv. У меня такие же картинки. Я видел много статей, но я не могу найти правильное решение для моей проблемы.

Может ли кто-нибудь помочь мне с этим

Я новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографийЯ новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографийЯ новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографийЯ новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографийЯ новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографийЯ новичок в питоне. Как обрезать изображение на основе радиуса объекта на картинке с помощью open.cv. Ниже мои несколько фотографий

Порог с последующей маскировкой должен помочь

Jeru Luke 09.04.2022 12:24
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
1
33
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вот один из способов сделать это в Python/OpenCV.

  • Чтение ввода
  • Преобразовать в оттенки серого
  • Порог и инвертировать как маску
  • Поместите маску в альфа-канал ввода
  • Сохранить результат

Вход:

import cv2
import numpy as np

# load image
img = cv2.imread('black_circle.png')

# convert to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# threshold
threshold = cv2.threshold(gray,128,255,cv2.THRESH_BINARY)[1]

# invert so circle is white on black
mask = 255 - threshold

# put mask into alpha channel of image
result = np.dstack((img, mask))

# save resulting masked image
cv2.imwrite('black_circle_masked.png', result)

# display result, though it won't show transparency
cv2.imshow("MASK", mask)
cv2.imshow("RESULT", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

Результат:

Примечание: загрузите результат, чтобы увидеть прозрачность.

Эй, спасибо за помощь. У меня разные образы. просто для примера я использовал изображения выше. Извините за неверные данные. вот изображение: ophthalmologyadvisor.com/wp-content/uploads/sites/24/2021/07‌​/…. У меня есть много изображений глаз разного размера. Я хочу удалить фон и обрезать изображение на основе круга. Не могли бы вы помочь мне с этим? Заранее спасибо.

Sai Chand 10.04.2022 17:33
Ответ принят как подходящий

Вот обработка в Python/OpenCV для вашего нового изображения.

Вход:

import cv2
import numpy as np

# load image as grayscale
img = cv2.imread('Diabetic-Retinopathy_G_RM_151064169.jpg')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# threshold input image
mask = cv2.threshold(gray, 10, 255, cv2.THRESH_BINARY)[1]

# optional morphology to clean up small spots
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3,3))
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)

# put mask into alpha channel of image
result = np.dstack((img, mask))

# save resulting masked image
cv2.imwrite('Diabetic-Retinopathy_G_RM_151064169_masked.png', result)

# display result, though it won't show transparency
cv2.imshow("mask", mask)
cv2.imshow("RESULT", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

Результат

Другие вопросы по теме