В настоящее время я с большим трудом думаю о хорошем методе удаления градиента из полученного изображения.
Изображение - это фотография, сделанная камерой микроскопа, которая имеет светлый блик посередине. Изображение имеет шаблон, который проходит по всему изображению. Однако я должен удалить световой блик на изображении, создаваемом светом камеры.
К сожалению, из-за природы камеры невозможно сделать снимок на черном фоне со светом, чтобы найти распределение градиента. У меня также нет сравнительного изображения без градиента. (обратите внимание - расположение светового блика всегда будет постоянным при съемке)
В более простых выражениях это похоже на фотографию со вспышкой, но я хочу избавиться от вспышки. Единственная проблема в том, что у меня нет способа получить изображение без вспышки, чтобы сравнить или даже получить черное изображение с помощью только вспышки на нем.
Моя текущая мысль - это обнаружение краев поведения и получение выборок в определенных местах вдали от краев (из-за разницы цветов) и использование этого для оценки распределения градиента, поскольку эти области должны иметь относительно одинаковые цвета. Однако мне было интересно, есть ли более простой и лучший способ сделать это.
При необходимости я отправлю пример изображения позже.
В настоящий момент у меня есть преимущество в решении этого вопроса в С++ с использованием opencv, если это упростит.
заранее заблаговременно за любые возможные идеи для этой проблемы. Если есть другая ссылка, учебник или сообщение, которое может решить мою проблему, я бы очень благодарен за сообщение.
как вы можете сказать, есть свет, который застрял на img, как вы можете сказать с белого пятна. и верхнее светлое, чем основание из-за света, цвет внутри овала на самом деле отличается, когда изображение берется в цвете. Однако цвет между коробкой и овалом должен быть последовательным. Моя первоначальная идея состояла в том, чтобы, возможно, выбрать только те области, которые каким-то образом и построить профиль, который я могу использовать, чтобы удалить свет, но я не уверен, насколько это было бы эффективно или если есть лучший способ.
EDIT:
Ну, я попробовал предложение Роджера, и результаты были превосходно хороши. Используя 110 гауссовский размытие ядра, чтобы найти освещение и провести CLAHE поверх этого. (оба сделаны в opencv)
Однако мой коллега сказал мне, что изображение выглядит неравномерно и указывает, что вокруг области, где раньше свет был немного ярче. Он предложил попробовать выборочное гауссовское размытие, где области над определенными пороговыми значениями пикселей не размыты, а остальная часть изображения размыта.
Есть ли у кого-нибудь мнения относительно этого и, возможно, ссылки, учебника или примера того, как это делается? Большинство вещей, которые я нахожу, имеют тенденцию быть выборочным размытием для таких программ, как photoshop и gimp
EDIT2:
трудно сказать просто глазами, но я считаю, что достиг довольно близкой униформизации, используя простой алгоритм установки плоскости. ((- A * x - B * y)/C) (x, y, z), где z - значение пикселя. Я думаю, что это можно улучшить, используя, возможно, синусоидальную функцию? Я не уверен. Но я доволен результатами. Большое спасибо Роджеру за отличные идеи.
Я считаю, что использование кучи изображений и получение avg было бы еще одним хорошим методом (предложенным roger), но Unofruntely я не смог реализовать это, так как я не был снабжен различными изображениями, и машина находится под модификацией, поэтому я не смог его использовать.