Я пытаюсь сгенерировать массив значений RGB для изображения, которое содержит n добавленных мною многоугольников. Каждый многоугольник имеет n точек, цвет заливки и непрозрачность. Полигоны могут перекрываться.
Моя цель - не построить изображение, а получить массив RGB, представляющий его
В настоящее время я использую пакет Imager, но он позволяет рисовать только прямоугольники. Я также посмотрел на растровый пакет, но, похоже, это не поможет. Имплант может быть полезен, но я не могу найти поддержку для полигонов.
Используя тепловизор, в настоящее время у меня есть следующий код:
cimg(array(1, c(width,height,1,3))) -> img1
draw_rect(img, x0, y0, x1, y1, opacity = 1, color="BLACK",filled = TRUE) -> img1
где объект img1 содержит массив RGB
Проблема решена:
Еще один пример того, чего я пытаюсь достичь:
например. когда я пытаюсь получить RGB-массив изображения, содержащего многоугольники, определенные с точками (10,10), (20,20), (30,10), (20, 50), и еще двое просто перемещаются вдоль х ось со смещением 10 и 20:
width <- height <- 250
xes <- c(10,20,30,20)
yes <- c(10,20,10,50)
cimg(array(1, c(width,height,1,3))) -> img3
img3 %>%
implot(., polygon(xes, yes, col = rgb(red = 0, green = 0, blue = 1, alpha = 0.5), border=NA),
rescale = FALSE ) %>%
implot(.,polygon(xes+ 10, yes, col = rgb(red = 1, green = 0, blue = 0, alpha = 0.5), border=NA),
rescale = FALSE ) %>%
implot(.,polygon(xes+ 20, yes, col = rgb(red = 0, green = 1, blue = 0, alpha = 0.5), border=NA),
rescale = FALSE ) -> out
out[,,1,] #prints out RGB array which I need