2017-06-16 58 views
1

digit 5 monochrome image如何單色圖像轉換成2D陣列在紅寶石

如何樣品單色圖像轉換爲2D陣列中紅寶石。

[[0, 0, 0, 0, 0], 
[0, 1, 1, 1, 1], 
[0, 1, 1, 1, 1], 
[0, 0, 0, 0, 1], 
[0, 1, 1, 1, 0], 
[1, 1, 1, 1, 0], 
[0, 1, 1, 1, 0], 
[0, 1, 1, 1, 0], 
[1, 0, 0, 0, 1]] 

我曾嘗試過使用pycall插件。但是,在rails控制檯中執行時,我不得不再次手動導入。 Pycall有時候不工作。

require 'pycall' 
require 'pycall/import' 
include PyCall::Import 

pyimport 'numpy', as: :np 
pyimport 'PIL.Image', as: :pil_image 

image = pil_image.open.(image_path).convert.('1') 
img = np.asarray.(image, dtype: np.uint8) 
list = img.tolist.().map { |l| l.to_a } 
+1

請分享您嘗試過的代碼。你有什麼特別的麻煩?見[問]。 –

回答

0

RMagick提供了一些解決方案。使用get_pixels可以獲得一組Pixel對象。像素對象是可以從中獲取紅色,綠色和藍色通道值的結構。由於圖像是單色的,通道值將爲0或QuantumRange。通過QuantumRange縮放值以強制它們爲0或1.

或者,使用export_pixels。再次,通過QuantumRange縮放返回的值以獲得0或1.

無論哪種情況,您都可以通過操作連續的子集(例如單行)來最小化存儲需求(如果圖像很大)圖片。