Як прибрати відблиски та яскравість зображення (попередня обробка зображення)?


19

У мене є образ

введіть тут опис зображення

Чи є спосіб видалення яскраво-білих плям? Будь ласка, допоможіть спасибі

Редагувати:

Після роботи з гауссом, а потім відображення за допомогою imagesc отримуйте наступний висновок, який чітко показує яскраво-червоні плями. Як я їх позбудуся

введіть тут опис зображення

Червоний канал:

введіть тут опис зображення

Зелений канал:

введіть тут опис зображення

Синій канал:

введіть тут опис зображення

Редагувати 2:

Виявлення дефектів за допомогою фільтра Габора

введіть тут опис зображення

Його гістограма:

введіть тут опис зображення

Як підрахувати відповідний поріг адаптивно.?


Чи відомо про налаштування ліхтарів?
nav

Ні, насправді, чи немає способу видалити їх на плями за допомогою фільтрації тощо?
vini

4
Загалом, це невдала проблема. У вас занадто багато невідомих, і вам доведеться вдатися до евристичного рішення. Удачі, щоб вибрати відповідь.
nav

Відповіді:


19

Припустимо, що відблиски - це єдині насичені ділянки зображення. Виявлення може бути здійснено шляхом порогування інтенсивності (код у Mathematica):

saturated = Binarize[ColorConvert[img, "Grayscale"], .9]

введіть тут опис зображення

Тоді нам потрібно лише замінити частини зображення навколо маски насичення (розширення маски здійснюється морфологічною функцією Dilation). Намалювання за допомогою синтезу текстур (за допомогою функції Inpaint), здається, добре працює в цьому прикладі, хоча я не можу перевірити його як вхід до вашого алгоритму виявлення дефектів:

Inpaint[img, Dilation[saturated, DiskMatrix[20]]]

введіть тут опис зображення


чи існує метод inpaint у matlab?
vini

Вибачте, я не знаю відповіді на це.
Маттіас Одісіо,

Виявлення дефектів є ідеальним, однак фарбування потрібно здійснити, оскільки в MATLAB немає вбудованої функції
vini

1
Я радий, що відповідь вирішила проблему. Що стосується малювання в matlab, то це, мабуть, добре підходить для незалежного запитання щодо SO. Дивіться stackoverflow.com/search?q=matlab+inpainting як початок.
Маттіас Одісіо

2
Розфарбування можна виконати за допомогою того, що зазвичай називається "Змішування зображень Пуассона". Підручник тут , код Matlab та приклади тут .
Маврит

4

Це може бути трохи спрощеною відповіддю, але ви могли б просто поріг? наприклад:

img = imread('daRNS.png');
imflat = img; 
imflat(img>150) = 150; 
imagesc(imflat)

призводить до:

сплющене зображення

Очевидно було б краще вибрати поріг адаптивно. Наприклад, ви можете подивитися гістограму зображення:

hist(double(img(:)),0:255)

гістограма

і спробуйте вибрати відповідний поріг на основі цього.


pls перевірити мою редагування 2
vini

@vini Спробуйте подивитись на зріз, де пояснюється 90% сигналу
tdc

я міг би просто поріг, але моя кінцева мета - виявлення дефектів .. що ніяк не допомагає, якщо я порогову його
vini

3
Але ваше запитання: "Як прибрати відблиски та яскравість зображення (попередня обробка зображення)?" не як виявити дефекти, що є ще одним (більш складним) питанням. @mrkulk нижче, здається, дав майже повну відповідь на це питання також нижче.
tdc

так, моє запитання полягає в тому, що я тепер, як виявити дефекти, однак цей відблиск перешкоджає результату
vini

2

введіть тут опис зображенняБез інформації про освітлення важко. Однак, якщо форма об'єкта на зображенні відома, ви можете встановити шаблон форми білого відблиску (гаусса) і зробити розсувне вікно, щоб знайти можливе виявлення відблисків (з подальшим змішуванням кольору із сусідньої області). Сприйнятно, ми виводимо 3D-зображення з зображень за допомогою затінення. Якщо форма від затінення здатна надати градієнт поверхні, ми можемо зробити розсувне вікно і перевірити наш відблисковий шаблон у кожному місці.

Після виявлення реберного ребра: -

введіть тут опис зображення

В основному дефектом буде перекриття (максимальна область накладання) між зображеннями №1 та №2.


Описуючи те, що я намагаюся зробити - я застосовую фільтр gabor, який в основному використовується для сегментації текстури, щоб знайти дефекти плодів, проте відблиски створюють проблему, оскільки фільтр відображає дві білі плями також як потенційний дефект, якого я в ідеалі не хочу
vini

ви намагалися просто брати окремі канали (від RGB або YUV) і просто діяти на них?
mrkulk

Найбільш відблисне зображення - це зображення в зеленому каналі. Як я можу працювати та виправляти його?
vini

Я спробував взяти зображення краю (canny) з порогом 0,5. Як і очікувалося, я не побачив відблиску на зображенні. Це повинно стати вашим пріоритетом для регіонів, які НЕ містять відблисків.
mrkulk

як це допоможе мені створити зображення без відблисків?
vini

0

На мою думку, це проблема машинного зору, в якій вам слід керувати освітленням і мати гарне уявлення про максимальну яскравість яскравості без відблиску пікселів на зображенні. Виявлення дефектів, як правило, є проблемою машинного зору, а не проблемою комп'ютерного зору.

Те, що ми бачимо в результаті освітлення, - це додавання дзеркальних та дифузних відбитків світла (плюс деяке випромінювання, але його тут незначно).

Зоряний компонент - це відблиски, на блискучій поверхні, як у цього яблука, це набагато більше, ніж розсіяне відображення (> 10x)

Це означає, що якщо встановити освітлення, коефіцієнт посилення та експозиції до цього, на розсіяній поверхні, ви можете бути впевнені, що нічого не буде навіть близько до насиченого. Тож використання фіксованого порогу насправді є кращим рішенням, якщо ви довели достатньо даних про те, що "жодна піксель, що не містить відблисків", буде вище порогового значення. По суті, ви налаштовуєте умови освітлення, і параметри камери такі, що класифікація пікселя стає тривіальною, в цьому випадку виконується простим порогом, а не більш складною машинною функцією пікселів навколо неї.

Мені подобається підхід "vini", немає реальної потреби показувати літаки RGB. Тут дійсно працював би простий поріг сірого кольору.

1- Ви проектуєте умови освітлення, а не навколишнього середовища

2 - зробити класифікаційне завдання надзвичайно тривіальним (порогове значення)

3- вимірюйте ознаку

4- порівняти з толерантністю


0

Перетворіть спочатку кольоровий простір лабораторії, mapminmax, а потім використовуйте перший канал світності. Це зменшує проблеми з кольором. Потім використовуйте деякий поріг на верхньому 80% найяскравішому пікселі. Перевірте і перевіріть, чи є занурення в гістограмі, найкращий поріг знаходиться біля нижньої частини копання. Якщо в цьому регіоні немає локальної хвилини, ваше зображення, ймовірно, має мінімальні відображення ...... Мартін

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.