概要
OpenCVで画像ファイルを読み込む場合、imread、imwriteをよく使用するが、
imread、imwriteはASCII文字のみ使用可能なため、UNICODE文字の日本語があるとエラーになってしまう。
今回は、imread、imwriteするときに日本語ファイル名でも読み書き出来る方法を記載する。
前提条件
- Python3.7.3
- OpenCV 4.2
サンプルプログラム
cv2_unicode_readwrite.py
import cv2
import os
import numpy as np
def main():
READ_FILE = "./テスト.jpg"
WRITE_FILE = "./テスト2.jpg"
# 読込
f = cv2.imdecode(np.fromfile(READ_FILE, dtype=np.uint8),
cv2.IMREAD_UNCHANGED)
# 64x64にリサイズを実施
resize_face = cv2.resize(f, (64, 64))
#保存
is_success, im_buf_arr = cv2.imencode(".jpg", resize_face)
im_buf_arr.tofile(WRITE_FILE)
if __name__ == "__main__":
main()