Обработка изображений в рубине

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

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

Это мой код,

source = Magick::Image.read("http://sphotos-e.ak.fbcdn.net/hphotos-ak-ash3/s720x720/1000741_634750993209985_702651963_n.jpg")

source.rows.times do |row|
            source.columns.times do |col|

            end 
end

Может ли кто-нибудь дать мне решение для этого?


person SaravanaKumAr    schedule 27.09.2013    source источник


Ответы (1)


В вашем объекте изображения есть метод с именем each_pixel. Я думаю, это может быть то, что вы хотите. Последняя версия RMagick и некоторые из более старых версий также имеют его.

(Object) each_pixel

def each_pixel
  get_pixels(0, 0, columns, rows).each_with_index do |p, n|
    yield(p, n%columns, n/columns)
  end
  self
end

Вы можете найти документацию и другие методы здесь

person usha    schedule 27.09.2013
comment
Мне нужно вставить изображения diff tile в каждый пиксель объекта изображения. Я имею в виду, что мне нужно сгенерировать [изображение мозаики] en.wikipedia.org/wiki/Photographic_mosaic - person SaravanaKumAr; 28.09.2013