実現したいこと
に書かれているヒストグラム平坦化処理という画像処理を日本語を含んだファイルでも実現したいため、その方法を探しています。
とりあえずPillowからNumPyに変換する方法を試したが画像を上手く読み込むことが出来ず困っています。
前提
下記のサイトを参考にPillowからNumPyへ変換するプログラムを組んだのですが
(https://imagingsolution.net/program/python/opencv-python/read_save_image_files_in_japanese/#toc1)
エラーが発生してしまいます。
特に分からないのはcv2.imshowでは正常に写真が表示されるのにcv2.imreadだとエラーが発生することです。
発生している問題・エラーメッセージ
C:\Users\*****\Desktop\****>python path.py Traceback (most recent call last): File "C:\Users\******\Desktop\****\path.py", line 17, in <module> bookimg = cv2.imread((img)) TypeError: Can't convert object to 'str' for 'filename'
該当のソースコード
import cv2 import numpy as np from PIL import Image # Pillowで画像ファイルを開く pil_img = Image.open("4-20outpcb_01.png") # PillowからNumPyへ変換 img = np.array(pil_img) # カラー画像のときは、RGBからBGRへ変換する if img.ndim == 3: img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) cv2.imshow("Image", img) cv2.waitKey(0) bookimg = cv2.imread((img))
試したこと
bookimg = cv2.imread((img))を
bookimg = cv2.imread(str(img))
に変更すると今度はエラーが
can't open/read file: check file path/integrity
に変わり、結局動かすことができませんでした。
NumPyで画像ファイルを開き、OpenCV(NumPyのndarray)に変換する手法も同様の結果でした。
補足情報(FW/ツールのバージョンなど)
ツール
Windows 10(64bit)
Pythonバージョン
3.11.6
OpenCVのバージョン
4.8.1

回答1件
あなたの回答
tips
プレビュー