【问题标题】:Convert a openCV numpy array to Wand Image format将 openCV numpy 数组转换为 Wand Image 格式
【发布时间】:2018-03-23 12:12:13
【问题描述】:

如何转换从 binarize_image 函数获得的 numpy 数组并保存该图像。我正在对图像进行预处理。将图像转换为灰度后,我使用了将它们转换为二进制图像。

def binarize_image(img):
    ret1, th1 = cv2.threshold(img, BINARY_THREHOLD, 255, cv2.THRESH_BINARY)
    return th1 # numpy.ndarray

我正在保存图片

   img.format = 'jpeg'
img_buffer = np.asarray(bytearray(img.make_blob()), dtype=np.uint8)
img = binarize_image(img_buffer)

# ..... Code to convert the ndarray back to Wand Image format .......

img.save(filename=os.path.join(pdf_folder,image_folder,outputFileName))

【问题讨论】:

  • 你需要真正问一个问题,我能看到的只是一些代码
  • @GPPK 我已经更新了问题

标签: python opencv wand


【解决方案1】:

您将 图像文件像素数据 缓冲区混淆了。只需将 JPEG blob 解码为 Mat,然后编码回来。

def binarize_image(img):
    mat = cv2.imdecode(img, cv2.IMREAD_UNCHANGED)
    ret1, th1 = cv2.threshold(mat, 127, 255, cv2.THRESH_BINARY)
    return cv2.imencode(".jpg", th1)

with Image(filename="wizard:") as img:
    img_buffer = np.asarray(bytearray(img.make_blob("JPEG")), dtype=np.uint8)
    ret, mat = binarize_image(img_buffer)
    with Image(blob=mat) as timg:
        timg.save(filename="output.jpg")

虽然您可以使用Image.thresholdImage.contrast_stretchImage.levelImage.quantize 方法直接使用 完成相同的任务。

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 2019-10-23
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多