簡體   English   中英

將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")

output.jpg

盡管您可以使用Image.thresholdImage.contrast_stretchImage.levelImage.quantize方法直接使用完成相同的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM