質問: cv2.imread(r"\Users\HN4-00012\Documents\kosen fike\WE×AR\sample\b\hiroaki.resize(1).jpg") cv2.imshow("color",img) cv2.waitKey() ``` ### 試したこと iPhone以外で撮影した画像はしっかりと読み込めました。 ### 補足情報(FW/ツールのバージョンなど) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/396c9ea37f0cf1466005e94924130f9e.png) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/12b7cd0ab856fbb8adc6049a719dfe3f.png) Windows10
回答: パスはあってますか? 実行しているのはどのOSでしょうか? Windows でも Linux でも `\` から始まるパスはないと思いますが。 手元の iphone で撮影したところ、iphone の標準カメラの保存形式が HEIF というフォーマットであることに気づきました。 OpenCV はこの形式に対応していないので、cv::imread() で読み込むには以下のどちらかの手順を踏む必要があります。 1 「設定」→「カメラ」→「互換性優先」で保存形式を jpeg に変更し、撮影する。 または 1. HEIF の画像を 変換ツール で jpeg に変換する。 追記 PIL.Image オブジェクトを np.array() にわたすと、そのまま numpy 配列にできます。 OpenCV の Pythonラッパーでは画像の実体は numpy 配列です。 ``` import cv2 import numpy as np from PIL import Image # PIL で読み込む。 img = Image.open(r"C:\Users\HN4-00012\Documents\kosen fike\WE×AR\sample\b2\tama.JPG") # PIL を numpy 配列に変換 img = np.array(img) # PIL はチャンネルの順番が RGB なので、OpenCV の BGR に変換する。 img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) cv2.imshow("img", img) cv2.waitKey(0) ```