简体   繁体   English

使用 vispy 以灰度显示图像

[英]Display image in Grayscale using vispy

i'm working with a spatial light modulator (SLM) which is connected as a second monbitor.我正在使用作为第二个监视器连接的空间光调制器 (SLM)。 The SLM has tzo recive 8-bit grayscale images. SLM 具有 tzo 接收 8 位灰度图像。 I am currently working with vispy to display the images on the SLM, but i'm not shore if they are diplayed correctly.我目前正在使用 vispy 在 SLM 上显示图像,但如果它们正确显示,我就不会支持。 Is there any possibility to display an image on grayscale using vispy?是否有可能使用 vispy 以灰度显示图像?

I disply the images using this code我使用此代码显示图像

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()

from http://vispy.readthedocs.io/en/stable/examples/basics/scene/image.html来自http://vispy.readthedocs.io/en/stable/examples/basics/scene/image.html

thanks for your help, and sorry for bad english感谢您的帮助,抱歉英语不好

You can transform your picture from RGB to gray (see this post ) and then use the 'grays' colormap.您可以将图片从 RGB 转换为灰色(请参阅此帖子),然后使用“灰色”颜色图。

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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM