将 openCV numpy 数组转换为 Wand Image 格式
Convert a openCV numpy array to Wand Image format
如何转换从 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))
您将 图像文件 与 像素数据 缓冲区混淆了。只需将 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")
尽管您可以直接使用 imagemagick by using either Image.threshold
, Image.contrast_stretch
, Image.level
, or Image.quantize
方法完成相同的任务。
如何转换从 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))
您将 图像文件 与 像素数据 缓冲区混淆了。只需将 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")
尽管您可以直接使用 imagemagick by using either Image.threshold
, Image.contrast_stretch
, Image.level
, or Image.quantize
方法完成相同的任务。