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

В настоящее время мне трудно думать о хорошем методе удаления градиента из изображения, которое я получил.

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

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

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

Моя текущая мысль состоит в том, чтобы провести обнаружение краев и получить образцы в определенных местах вдали от краев (из-за разницы в цвете) и использовать это для измерения распределения градиента, поскольку эти области должны иметь относительно идентичные цвета. Однако мне было интересно, есть ли более легкий и лучший способ сделать это.

При необходимости я опубликую пример изображения позже.

На данный момент у меня есть предпочтение решить эту проблему в c ++ с использованием opencv, если это облегчает задачу.

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

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

как вы можете заметить, на изображении сияет свет, который можно увидеть по белому пятну. а верхняя часть светлее, чем дно, из-за того, что свет внутри овала на самом деле отличается, когда цветная картинка сделана. Однако цвет между коробкой и овалом должен быть постоянным. Моя первоначальная идея состояла в том, чтобы, возможно, выбрать только те области, которые как-то, как и построить профиль, который я могу использовать, чтобы убрать свет, но я не уверен, насколько эффективным это будет, или если есть лучший способ

РЕДАКТИРОВАТЬ :

Ну, я опробовал предложение Роджера, и результаты были на удивление хорошими. Используя гауссовское размытие 110 ядер, чтобы найти освещение и проводя CLAHE поверх этого. (оба сделаны в opencv)

введите описание изображения здесь
Однако мой коллега сказал мне, что изображение выглядит не совсем равномерно, и указал, что вокруг области, где раньше был свет, немного ярче. Он предложил попробовать выборочное размытие по Гауссу, когда области выше определенных пороговых значений пикселей не размыты, а остальная часть изображения размыта.

У кого-нибудь есть мнения по этому поводу и, возможно, ссылка, учебное пособие или пример того, как это делается? Большинство вещей, которые я нахожу, имеют тенденцию быть избирательным размытием для программ, таких как Photoshop и GIMP.

EDIT2:

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

трудно сказать только глазами, но я полагаю, что я достиг относительно близкой униформизации с помощью простого алгоритма подгонки плоскости. ((- — A * x — B * y) / C) (x, y, z), где z — это значение пикселя. Я думаю, что это можно улучшить, используя, возможно, функцию подбора синуса? я не уверен Но я относительно доволен результатами. Большое спасибо Роджеру за прекрасные идеи.

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

13

Решение

Ранее я проделал некоторую работу в этой области и обнаружил, что большое ядро ​​размытия по Гауссу может дать разумное приближение к освещению фона. Я постараюсь, чтобы что-то работало с вашим примером изображения, но пока вот пример вашего изображения после размытия по Гауссу с радиусом 50 пикселей, который может помочь вам решить, стоит ли прогрессировать.

Размытый

ОБНОВИТЬ

Просто играя с этим изображением, вы можете получить разумное улучшение, используя адаптивную коррекцию гистограммы (я использовал CLAHE) — см. сравнение ниже — любое использование?

CLAHE

Я буду обновлять этот ответ с более подробной информацией по мере продвижения

9

Другие решения

Я хотел бы указать вам на эту статью: http://www.cs.berkeley.edu/~ravir/dirtylens.pdf, но, по моему мнению, без какой-либо калибровки / сравнения изображения, сделанного априори, трудно вычеркнуть основную правду из расплывчатого изображения.

Однако, если вы пытаетесь просто представить изображение за вычетом бликов объектива, не обращая внимания на фактические научные данные за расклешенной частью, то вы переходите в область рисования изображения. Алгоритм Криминси, как описано в этой статье: http://research.microsoft.com/pubs/67276/criminisi_tip2004.pdf и объяснил / упростил в этих двух ссылках: http://cs.brown.edu/courses/csci1950-g/results/final/eboswort/ http://www.cc.gatech.edu/~sooraj/inpainting/, сделает очень хорошую работу по восстановлению информации о текстуре в расширяющихся областях. (Если вы действительно хотите использовать этот подход, упомяните об этом. Для этого может быть предоставлена ​​более полная помощь).

Однако, учитывая тот факт, что мы имеем дело с микроскопическими данными, я сомневаюсь, что вы хотите потерять научные данные, содержащиеся в определенной области изображения. В этом случае я действительно думаю, что вам нужно найти обходной путь для определения модели вспышки / источника света с используемой линзой.

Я надеюсь, что кто-то еще может пролить больше света на это.

4

По вопросам рекламы [email protected]