Как удалить шум камеры в CMOS-камере

Здесь я приложил два последовательных кадра, снятых камерой cmos с ИК-фильтром. Плата проверки объектов была неподвижной во время захвата изображений. Но разница между двумя изображениями составляет почти 31000 пикселей. Это может повлиять на мой результат. скажите мне, что это за шум? Как я могу его удалить. Пожалуйста, предложите мне какие-либо алгоритмы или любую функцию, чтобы удалить эти шумы. Спасибо. Извините за мой плохой английский.

Изображение 1 : [1]: http://i45.tinypic.com/2wptqxl.jpg

Изображение 2: [2]: http://i45.tinypic.com/v8knjn.jpg


person aranga    schedule 14.11.2012    source источник
comment
Я нахожу абсолютную разницу между изображениями. a = imread('inputimage.jpg');b = imread('inputimage1.jpg');diff = abs(a - c); и я знаю, что эти шумы возможны. Но мой вопрос заключается в том, как устранить их с помощью некоторых методов обработки изображений. Эти изображения сохраняются с помощью обычной сжатой модели jpeg с глубиной 8 бит. Есть ли возможность избежать этих шумов с помощью методов обработки изображений.   -  person aranga    schedule 14.11.2012
comment
Вы знаете, что если a и b являются целочисленными переменными класса, скажем, a=uint8(10); b=uint8(22);, то a-b = 0, верно? хорошее чувство изменчивости между изображениями будет что-то вроде std(double(a(:))-double(b(:))) и т. д...   -  person bla    schedule 14.11.2012
comment
да .. это нормально .. используя эти стандартные значения, как я могу решить, будут ли на него влиять шумы или нет?   -  person aranga    schedule 14.11.2012
comment
std — это просто мера, которую вы можете использовать, чтобы увидеть, помог ли какой-либо из методов, примененных для уменьшения различий между изображениями. Я постараюсь ответить с помощью некоторых методов ниже...   -  person bla    schedule 14.11.2012


Ответы (3)


Этот шум возникает из-за сенсора камеры (преобразование Байера в RGB). Остался еще шахматный узор.

Также в процесс вносит большой вклад jpg с потерями. Сначала у вас должен быть доступ к необработанным изображениям.

Из этих конкретных изображений я бы сначала попытался использовать фильтры обнаружения краев (горизонтальный и вертикальный Собеля), чтобы создать маску, которая выбирает между некоторым медианным/локальным выравниванием гистограммы для плоских областей и применяет фильтр, уменьшающий шахматную доску, к краям. Дело в том, что, наверное, ни один фильтр не способен справиться как с артефактами звона jpeg, так и с зубчатыми краями. Тогда реальный вопрос: какие еще изображения следует обрабатывать?

Из комментариев: если угловые точки нужно сделать точными, то решение скорее состоит в том, чтобы искать признаки (угловые точки с субпиксельным разрешением) и делать сопоставление одного набора точек с другим набором углов изображений, и искать наилучшая матрица аффинного преобразования, переводящая эти множества друг в друга. Затем с помощью этой матрицы можно выполнить передискретизацию другого изображения.

К счастью, можно оценить векторы движения с субпиксельным разрешением без перебора всех возможных местоположений субпикселей: при вычислении согласованного фильтра получаются локальные максимумы для потенциальных кандидатов на точное совпадение. Но это еще не все. Можно попытаться рассчитать более точную аппроксимацию местоположения пика, изучая выходные данные согласованного фильтра в соседних пикселях. Для точного совпадения выход должен быть симметричным. В противном случае «энергии» согласованного фильтра смещаются в сторону второго лучшего местоположения. (Можно использовать полиномиальную подгонку 2-й степени + поиск максимума.)

person Aki Suihkonen    schedule 14.11.2012
comment
Спасибо, Аки... Но это основная проблема. Нет возможности получить доступ к необработанному изображению напрямую. Оно будет сохранено в формате jpeg с помощью драйверов камеры. Существуют ли какие-либо методы обработки изображения для удаления этих шумов?? - person aranga; 14.11.2012

Присмотревшись к этим изображениям, я должен согласиться с @Aki Suihkonen. На мой взгляд, основной шум исходит от сжатия jpeg, из-за которого острые края «звенят». Я бы попробовал фильтр типа «de-speckle» на изображениях и посмотрел, имеет ли это значение. Некоторая информация, которая может помочь вам реализовать это, может быть найдена в этом ссылка.

Более быстрым и грязным способом вы применяете один из многих стандартных инструментов, например, учитывая изображения a и b:

(i) просто сгладить изображение фильтром Гаусса, это может уменьшить шумовые различия между изображениями на порядок. Например:

  h=fspecial('gaussian',15,2);
  a=conv2(a,h,'same');
  b=conv2(b,h,'same');

(ii) Уменьшение шума с помощью адаптивной фильтрации

 a = wiener2(a,[5 5]);
 b = wiener2(b,[5 5]);

(iii) Настройка значений интенсивности с помощью выравнивания гистограммы

 a =  histeq(a);
 b =  histeq(b);

(iv) Настройка значений интенсивности в указанном диапазоне

 a = imadjust(a,[0 0.2],[0.5 1]);
 b = imadjust(b,[0 0.2],[0.5 1]);
person bla    schedule 14.11.2012

Если ваши изображения должны быть черно-белыми, но вы сняли их в оттенках серого, разница может быть из-за шума. Вы можете преобразовать изображения в черно-белые, определив пороговое значение, любому пикселю со значением меньше этого порога следует присвоить 0, а всему, что выше этого порога, следует присвоить 1 или любой другой диапазон шкалы серого (возможно, 255). Предположим, что ваше изображение I, чтобы сделать его черно-белым, предполагая, что уровень вашего изображения в оттенках серого составляет от 0 до 255, предположим, что вы выбрали пороговое значение 100:

ind = find(I < 100);
I(ind) = 0;
ind = find(I >= 100);
I(ind) = 255;

Теперь у вас есть черно-белое изображение, сделайте то же самое для другого изображения, и вы должны получить очень небольшую разницу, если камера и объект сместились.

person TJ1    schedule 14.11.2012
comment
Спасибо за ответ TJ. Мне нужно найти точный угол (определение угла субпикселя) квадрата. Тогда нет возможности использовать черно-белые изображения. Нам нужно использовать только серые изображения. Из-за этого шумы угловые точки различны. Итак, как получить одинаковую угловую точку для всех кадров ?? - person aranga; 14.11.2012