2016-10-03 4 views
0

Я работаю с пространственным модулем света (SLM), который соединен как второй монбитор. У SLM есть tzo для получения 8-битных изображений в оттенках серого. В настоящее время я работаю с vispy, чтобы отображать изображения на SLM, но я не нахожусь, если они правильно распределены. Есть ли возможность отображать изображение в оттенках серого с помощью vispy?Показать изображение в оттенках серого с помощью vispy

Я Disply изображения, используя этот код

import sys 
from vispy import scene 
from vispy import app 
import numpy as np 

canvas = scene.SceneCanvas(keys='interactive') 
canvas.size = 800, 600 
canvas.show() 

# Set up a viewbox to display the image with interactive pan/zoom 
view = canvas.central_widget.add_view() 

# Create the image 
img_data = *my image* 
image = scene.visuals.Image(img_data, parent=view.scene) 

# Set 2D camera (the camera will scale to the contents in the scene) 
view.camera = scene.PanZoomCamera(aspect=1) 

if __name__ == '__main__' and sys.flags.interactive == 0: 
    app.run() 

из http://vispy.readthedocs.io/en/stable/examples/basics/scene/image.html

спасибо за вашу помощь и извините за плохой английский

ответ

0

Вы можете превратить свою фотографию из RGB в серый цвет (см this post), а затем используйте цветовой пакет «grays».

import sys 
from vispy import scene 
from vispy import app 
import numpy as np 
from vispy.io import load_data_file, read_png 

canvas = scene.SceneCanvas(keys='interactive') 
canvas.size = 800, 600 
canvas.show() 

# Set up a viewbox to display the image with interactive pan/zoom 
view = canvas.central_widget.add_view() 

# Define a function to tranform a picture to gray 
def rgb2gray(rgb): 
    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114]) 

# Load the image 
img_data = read_png(load_data_file('mona_lisa/mona_lisa_sm.png')) 

# Apply transformation 
img_data = rgb2gray(img_data) 

# Image visual 
image = scene.visuals.Image(img_data, cmap='grays', parent=view.scene) 

# Set 2D camera (the camera will scale to the contents in the scene) 
view.camera = scene.PanZoomCamera(aspect=1) 
view.camera.set_range() 
view.camera.flip = (0, 1, 0) 

if __name__ == '__main__' and sys.flags.interactive == 0: 
    app.run() 
+0

Это работает! Спасибо! – stanissse

 Смежные вопросы

  • Нет связанных вопросов^_^