如何将pycairo表面转换为opencv numpy,然后返回python 3



我想将OpenCV映像转换为Pycairo,进行一些操纵(图纸等(,然后将其转换回OpENCV。你知道该怎么做吗?简单的例子就足够了。谢谢。

,如Pycairo的测试代码中指定的,将cairo.ImageSurface对象转换为numpy array

import cairo
import numpy as np
w = 300
h = 300
surface = cairo.ImageSurface (cairo.FORMAT_ARGB32, w, h)
ctx = cairo.Context (surface)
# Draw out the triangle using absolute coordinates
ctx.move_to (w/2, h/3)
ctx.line_to (2*w/3, 2*h/3)
ctx.rel_line_to (-1*w/3, 0)
ctx.close_path()
ctx.set_source_rgb (0, 0, 0)  # black
ctx.set_line_width(15)
ctx.stroke()
buf = surface.get_data()
array = np.ndarray (shape=(h, w, 4), dtype=np.uint8, buffer=buf)

相关内容

最新更新