Member 13458399 Ответов: 1

Я должен размыть выбранный прямоугольник из изображения в VB?


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

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

я попробовал функцию размытия по Гауссу.

lw@zi

Вы должны обновить вопрос с помощью кода, который вы уже пробовали до сих пор.

Maciej Los

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

1 Ответов

Рейтинг:
11

Maciej Los

Взгляните на эти примеры:
Создание гауссовского размытия с помощью VB.NET[^]
Gausian и Альфа-размытие[^]

Оба используют 2 цикла, которые изменяют пиксели от 0 до ширины/высоты изображения:

' Loop the rows of the image
For PixelY = 0 To bmp.Width - 1
    ' Loop the cols of the image
    For PixelX = 0 To bmp.Height - 1


Все что вам нужно сделать это размыть пиксели занятые номерным знаком ;)

|----------------------------| <--- image
|                            |
|                            |
|    |--------|              |
|    |--------| <------------------ number plate
|                            |
|                            |
|----------------------------|


Member 13458399

Спасибо за ответ.
ptfRectPoints = licPlate.rrLocationOfPlateInScene.GetVertices() 'получить 4 вершины повернутого прямоугольника

Дим pt0 как новая точка(Кинт(ptfRectPoints(0).Х), Кинт(ptfRectPoints(0).Г)) 'объявление 4 очка, целочисленный тип
Dim pt1 как новая точка(CInt(ptfRectPoints(1).X), CInt(ptfRectPoints(1).Y))
Dim pt2 как новая точка(CInt(ptfRectPoints(2).X), CInt(ptfRectPoints(2).Y))
Dim pt3 как новая точка(CInt(ptfRectPoints(3).X), CInt(ptfRectPoints(3).Y))

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

Wendelius

Хорошо объяснено, пятерка.

Maciej Los

Спасибо, Мика.