Поиск слабой линии на очень зашумленном изображении с переменным фоновым шумомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поиск слабой линии на очень зашумленном изображении с переменным фоновым шумом

Сообщение Anonymous »

Я работаю на Python. У меня очень шумное изображение в оттенках серого, где уровень шума модулируется по одной оси. Внутри этого изображения может быть очень слабая линия неизвестной ширины. Я хочу иметь возможность определить, когда эта линия находится на изображении. Приложение, которое я имею в виду, требует автоматизации.
Следующий код можно использовать для создания более тревожного случая того, как это может выглядеть:

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

import numpy as np

def background(N, M, nl, nf, nT, r):
a = nf*np.sin((2*np.pi/nT)*np.arange(N))
a=a.reshape(-1,1)
fuzz = nl + a*np.ones((N,M))
fuzz+= r*a*np.random.normal(size=(N,M))

return fuzz

def add_slider(B, s, v, w, a, r):
N, M = B.shape
amps = a+r*np.random.normal(size=M)

x=np.arange(N)
for i, y in enumerate(range(s, N, v)):
if i >= M: break
B[:,i]+=amps[i]*np.exp(-(x-y)**2/(2*w**2))

def subtracted(im):
return im - im.mean(1).reshape(-1, 1)

B = background(1000, 300, 0, 5, 100, 1)
add_slider(B, 0, 2, 40, 1, 1)
back = subtracted(B)

При этом создается изображение в оттенках серого, вызываемое обратно, которое при печати выглядит следующим образом.
Для менее экстремального примера:

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

B2 = gs.background(1000, 300, 0, 5, 100, 1)
gs.add_slider(B2, 0, 2, 40, 5, 1)
back2 = subtracted(B2)
возвращает2, что на графике выглядит так
Я пробовал несколько вещей, но ни один из них не работает очень хорошо хорошо, когда я меняю некоторые параметры, используемые для создания изображения. Например, я пробовал применить размытие по Гауссу, что иногда работает, но получение правильной ширины может быть очень трудным, и это проблематично, когда линия более вертикальная. Я также попробовал вращающуюся маску, как в этом посте, но, похоже, ей мешает модулирующий уровень шума. Я также немного поэкспериментировал с преобразованиями радона, но и там не нашел ничего последовательного. Большинство стандартных методов обнаружения границ, таких как Canny, похоже, не работают, поскольку они, как правило, полагаются на локальные градиенты, которые полностью разрушаются шумом.
Я провел ограниченный поиск статей. по этой теме, но я не нашел ничего, что хорошо подходило бы для этой проблемы. Если возможно, я хочу найти решение, которое не полагается на знание многих деталей линии, например ее толщины.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Поиск слабой линии на очень зашумленном изображении с переменным фоновым шумом
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Поиск слабой линии на очень зашумленном изображении с переменным фоновым шумом
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Поиск слабой линии на очень зашумленном изображении с переменным фоновым шумом
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Обнаружение линии на зашумленном изображении
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Обнаружение контура на зашумленном изображении
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

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