使用 vispy 以灰度显示图像
Display image in Grayscale using vispy
我正在使用作为第二个显示器连接的空间光调制器 (SLM)。 SLM 有 tzo 接收 8 位灰度图像。
我目前正在使用 vispy 在 SLM 上显示图像,但如果它们显示正确,我不会支持。
是否有可能使用 vispy 在灰度上显示图像?
我用这个代码显示图片
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
感谢您的帮助,抱歉英语不好
您可以将图片从 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()
我正在使用作为第二个显示器连接的空间光调制器 (SLM)。 SLM 有 tzo 接收 8 位灰度图像。 我目前正在使用 vispy 在 SLM 上显示图像,但如果它们显示正确,我不会支持。 是否有可能使用 vispy 在灰度上显示图像?
我用这个代码显示图片
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
感谢您的帮助,抱歉英语不好
您可以将图片从 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()