Как я могу заменить белый прямоугольник внутри изображения с помощью ImageMagick?
описание:
первое изображение-мое исходное изображение. Здесь я хочу заменить белый прямоугольник, показанный другим изображением.
мой подход:
Я создал изображение маски с помощью floodfill
и выглядит так:
:
теперь я хотел бы получить расстояние или координаты прямоугольника во второй образ, который я можно использовать эти координаты для наложения нового изображения поверх первого (оригинального изображения) здесь.
У меня есть маленькая идея использовать ImageMagick в Чебышева оператор морфологии, но не знаю, как я могу это сделать.
1 ответов
Я думаю, что вы можете найти форму довольно точно с помощью простого порога, например:
convert image.jpg -threshold 90% result.jpg
и вы можете затем сделать осторожное обнаружение края, как это:
convert image.jpg -threshold 90% -canny 0x1+10%+30% result.jpg
следующие вещи, на которые я буду смотреть, - это использование -trim
функция для поиска координат обрезки, например:
convert result.jpg -format "%@" info:
320x248+152+40
я отметил Это красным цветом под.
если вы действительно хотите сделать отделку, то так:
convert result.jpg -trim result.jpg
а также, угол deskew
convert result.jpg -deskew 40 -format "%[deskew:angle]" info:
-0.111906
обнаружение линии Hough также может быть эффективным для вас, как это:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \
\( +clone -background none \
-fill red -stroke red -strokewidth 2 \
-hough-lines 5x5+80 -write lines.mvg \
\) -composite hough.png
и файл lines.mvg
содержит 4 строки, которые вы ищете
# Hough line transform: 5x5+80
viewbox 0 0 640 360
line 449.259,0 474.432,360 # 90
line 0,72.5604 640,27.8072 # 143
line 0,293.098 640,248.344 # 187
line 153.538,0 178.712,360 # 153
будучи немного ленивым, я не чувствовал себя решающим для перекрестков из этих линий, поэтому я подумал, что позволю ImageMagick сделать это тоже-используя морфологию, чтобы искать такие пересечения линий:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \
\( +clone -background none -fill red -stroke red -hough-lines 5x5+80 \) \
-composite -fuzz 50% -fill black -opaque white \
-morphology HMT LineJunctions hough.png