Мне нужно конвертировать изображения для обнаружения объектов.Я начинаю с изображений SVG с несколькими полигонами.Пример:
<svg ...>
<rect width = "100%" height = "100%" fill = "rgb(0,0,0)" />
<polygon points="..." fill="rgb(221,221,221)" fill-opacity="1.0" />
<polygon points="..." fill="rgb(100,100,100)" fill-opacity="0.5" />
</svg>
Результатом является черный фон, объект A, имеющий цвет rgb (221,221,221), объект B, имеющий цвет rgb (50,50,50), и везде, где два объекта перекрываются, rgb (160,160,160),Алгоритм обнаружения (не может быть изменен) определяет объекты по значениям их пикселей.
Я успешно преобразовал из svg в png, используя inkscape, svgr-convert или ImageMagikk.Однако края этих изображений png всегда размыты, что мешает моему обнаружению объекта.
Есть ли какой-нибудь способ конвертировать с четкими краями? Это изображение показывает преобразование с добавлением размытых пикселей с неправильными значениями.Я увеличил границы, чтобы сделать это очевидным.
edit: пример полного изображения
<svg viewBox="17.874 6.66874 74.0131 70.817" xmlns="http://www.w3.org/2000/svg">
<rect width = "100%" height = "100%" fill="black" fill-opacity="1.000000" stroke="black" stroke-opacity="1.000000" stroke-width ="0.000000"/>
<polygon points="66.499391,34.862972 35.730400,51.495089 68.667463,64.499553 " fill="rgb(221,221,221)" fill-opacity="1.000000" />
<polygon points="47.613765,49.254424 23.219703,52.458598 47.246912,50.965952 48.078815,51.599703 49.620943,52.471096 62.516253,65.471290 65.077318,43.877861 51.086443,12.014429 34.861708,20.532821 " fill="rgb(100,100,100)" fill-opacity="0.500000" />
</svg>