Выберите и заполните случайные пиксели в формате jpg - PullRequest
0 голосов
/ 13 января 2020

Допустим, у меня есть .jpg, как показано ниже. Можно ли в R выбрать, скажем, 25% пикселей, а затем создать новый .jpg с этими пикселями, заполненными заданным цветом. Аналогично следующему вопросу в matlab Случайный выбор пикселей на изображении Matlab

enter image description here

1 Ответ

4 голосов
/ 13 января 2020

Вот один из способов

img = jpeg::readJPEG(system.file("img", "Rlogo.jpg", package="jpeg"))    

Npixels = prod(dim(img)[1:2])
Rpixels = sample(Npixels, 0.25 * Npixels) # randomly select 25% of the pixels
img[,,1][Rpixels] = 1 # set the red layer to one in selected pixels
img[,,2][Rpixels] = 0 # set blue and green to zero
img[,,3][Rpixels] = 0

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

par(mai=c(0,0,0,0))
plot.new()
rasterImage(img,   0, 0, 1, 1)

enter image description here

Чтобы экспортировать как новый файл JPEG, мы можем сделать

jpeg::writeJPEG(img, "test.jpeg")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...