Как исправить сломанные контуры?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить сломанные контуры?

Сообщение Anonymous »

Я работаю над исследовательским проектом, который включает в себя сегментацию изображения, но контуры не очень правильные. Это то, что я получаю после некоторой очистки изображения и обнаружения контуров, но, как вы можете видеть, контуры в некоторых местах нарушены. Есть ли способ это исправить? Я наткнулся на статью DiSTNet2D, в которой предполагается обучать нейронные сети сегментации. Я не очень уверен, что это может быть излишним. Есть ли у кого-нибудь лучшие предложения? Большое спасибо! Я приложил свой код и результаты

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

def gaussian_filter_multiscale_retinex(image: np.ndarray, sigmas: list, weights: list) -> np.ndarray:
img32 = image.astype('float32') / 255
img32_log = np.log1p(img32)

msr = np.zeros(image.shape, np.float32)
for sigma, weight in zip(sigmas, weights):
blur = cv.GaussianBlur(img32, ksize=(0, 0), sigmaX=sigma)
blur_log = np.log1p(blur)
msr += (img32_log - blur_log) * weight

msr /= sum(weights)
return cv.normalize(msr, None, 0, 255, cv.NORM_MINMAX, cv.CV_8U)

def process_image(img_path):
img = cv.imread(img_path, cv.IMREAD_GRAYSCALE)
rtnx = gaussian_filter_multiscale_retinex(img, sigmas=[15, 55, 185], weights=[10, 5, 1])
thresholded = cv.adaptiveThreshold(rtnx, 255, adaptiveMethod=cv.ADAPTIVE_THRESH_GAUSSIAN_C,
thresholdType=cv.THRESH_BINARY, blockSize=7, C=-7)

nb_components, output, stats, _ = cv.connectedComponentsWithStats(thresholded, connectivity=8)
sizes = stats[1:, -1]
new_img = np.zeros_like(thresholded)
new_img[np.isin(output, np.where(sizes >= 12)[0] + 1)] = 255

numLabels, labels, stats, centroids = cv.connectedComponentsWithStats(new_img)
Изображение

Изображение



Подробнее здесь: https://stackoverflow.com/questions/792 ... n-contours
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как исправить сломанные контуры?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Установка R на Ubuntu 22.04.5 LTS. Ошибка: невозможно исправить проблемы, у вас были сломанные пакеты
    Anonymous » » в форуме Linux
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Whatsapp Обмен ссылками на PHP. Сломанные китайские иероглифы для метаописаний.
    Anonymous » » в форуме Php
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Фоновое меню, вызываемое правой кнопкой мыши, показывает сломанные элементы.
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Фоновое меню, вызываемое правой кнопкой мыши, показывает сломанные элементы.
    Anonymous » » в форуме C++
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

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