MCSIDevelopers Ответов: 1

Как обнаружить некоторые части изображения


Привет, КП.

Я создал форму, которая является самым верхним приложением со специальным изображением, и я сделал форму полупрозрачной, но из-за высокого качества (разрешение) Я сделал непрозрачность 0,1%, чтобы легко видеть сквозь нее.

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

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

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

Кроме того, я не уверен, как я могу обнаружить это с помощью техники распознавания лиц в видео с помощью VB.NET, вся идея состоит в том, чтобы создать видеоплеер, который будет воспроизводить это видео, а затем обнаруживать это изображение там.

Есть идеи?

Что я уже пробовал:

Я проверил технику распознавания лиц, но понятия не имею, как я мог бы применить ее к этому.

Richard MacCutchan

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

[no name]

Спасибо, но теперь распознавание лиц будет пытаться обнаружить все изображение или попытается найти все изображение, чтобы соответствовать, что будет проблемой из-за света от видео, скажем, видео имеет некоторые белые части, белая область не будет обнаружена распознаванием лиц, потому что свет/белые делает его очень трудно увидеть некоторые линии изображения(водяные знаки).

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

nv3

Некоторые части того, что вы пытаетесь сделать, все еще не ясны мне. Вы действительно говорите о непрозрачности 0,1%, что означает, что изображение вообще едва заметно (или вы имели в виду непрозрачность 0,1, то есть 10%)?

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

Допустим, я правильно понял вашу задачу. Распознавание водяного знака не имеет ничего общего с распознаванием лиц. Подумайте, как водяной знак влияет на ваше изображение. Он добавляет к изображению края, содержащиеся в водяном знаке. Поэтому вам нужно выполнить определение краев изображения и сравнить края с краями водяного знака. К сожалению, результат также будет содержать края исходного изображения. Таким образом, вы можете ожидать, что только некоторые края вашего нового изображения будут от водяного знака. Следовательно, трудность заключается в нахождении разумного порога того, сколько краев водяного знака потребуется найти, чтобы назвать это совпадением.

Надеюсь, это наставит вас на правильный путь.

[no name]

Привет, nv3, извините, что так долго отвечаю. Что ж, позвольте мне прояснить это. У меня есть 2 разных приложения, одно из которых-водяной знак(это приложение, которое отображает изображение водяного знака на экране.) Второе приложение будет предназначено для чтения видео, скажем, из файла, получения его кадров и попытки проверить, есть ли на видео этот водяной знак. Я думаю, что инструмент для использования-это OpenCV, как сказал Карстенк, потому что я хочу проверить, есть ли на видео какая-либо часть водяного знака.

1 Ответов

Рейтинг:
1

KarstenK

Ваш проект-сложная задача. По соображениям производительности вам действительно следует рассмотреть возможность реализации кода обнаружения видео в C++.

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

Возможный способ пойти с OpenCV, как описано в этом разделе статья который обрабатывает некоторые аспекты поиска изображений на основе контента.

Копайте в пример кода OpenCV для дальнейших возможных сценариев, таких как корпус, кромки и так далее...


[no name]

Спасибо, и, глядя на эти ссылки, похоже, что это именно то, что я ищу. Я думаю, мне придется покопаться в этом подробнее, но проблема в том, что я не разработчик C++, но проверю больше подробностей об этом и если есть какой-либо возможный способ сделать это в VB.NET.