Как можно выделить цветные пиксели, которые не являются общими для двух изображений?
Вот что я хотел бы сделать:
У меня есть изображение рисового листа. У меня есть другое изображение рисового листа, на котором есть пятна коричневого цвета. То, что я хочу сделать, это отделить цветные пиксели, которые не являются общими для двух изображений, используя opencv.(Цвет точек может отличаться)
Я попытался сделать это с помощью пересечения гистограммы. Но удалось найти только общее количество пикселей между двумя изображениями.
Есть ли способ сделать это с помощью opencv? Пожалуйста, будьте любезны, чтобы помочь мне.
1 ответ
если 2 изображения идеально совпадают
- если они соответствуют использованию
RhinoDevel
подход: - так переберите все пиксели первого изображения
- и сравнить каждый пиксель с соответствующим пикселем из второго изображения
- если разница выше порога
- вы нашли не соответствующий пиксель и делать то, что вам нужно сделать
- например, добавить пиксель к некоторой выходной карте или перекрасить (коричневый) пиксель в цвет первого изображения или что-то еще
если 2 изображения не совпадают
- так что вы только что получили эталонное листовое изображение, и обработанное изображение может иметь любую позицию / поворот
- создать список цветов для каждого изображения
- сортировать их по возрастанию по цвету
- Перечень сравнения стендов
- если какой-либо цвет есть в list2, но не в list1
- затем перекрасить / скопировать все пиксели, которые содержат такой цвет в / из image2
- этот подход медленнее
O(xs*ys*n)
xs,ys
разрешение изображения 2 иn
количество не распространенных цветов
[Заметки]
- RGB обычно в порядке, но может быть, вы получили лучший результат в цветовом пространстве HSV
- в HSV вы можете сравнить все 3 параметра или только некоторые из них, как игнорирование
V value...