teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

検証結果を追記

2017/12/14 02:51

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -3,12 +3,27 @@
3
3
  ```Python
4
4
  import cv2
5
5
  print(cv2.__version__)
6
+
7
+ # 独自に読込
8
+ def imread(filename, flags=cv2.IMREAD_COLOR, dtype=np.uint8):
9
+ try:
10
+ n = np.fromfile(filename, dtype)
11
+ img = cv2.imdecode(n, flags)
12
+ return img
13
+ except Exception as e:
14
+ print(e)
15
+ return None
16
+
6
17
  img = cv2.imread(r'c:\hoge\a.png')
7
18
  print(img) # 正常
8
19
  img = cv2.imread(r'c:\hoge\あ.png')
9
20
  print(img) # None
21
+ img = imread(r'c:\hoge\あ.png')
22
+ print(img) # 正常
10
23
  ```
11
24
 
12
25
  [Python OpenCV の cv2.imread 及び cv2.imwrite で日本語を含むファイルパスを取り扱う際の問題への対処について](https://qiita.com/SKYS/items/cbde3775e2143cad7455)
13
- にあるように独自に読み込む処理を書くと、正常に読み込めるようです
26
+ にあるように独自に読み込む処理を書くと、正常に読み込めました
14
- OpenCV(python側)のバグのような気がします。
27
+ OpenCV(python側)のバグのような気がします。
28
+
29
+ なお、「エラーが3つ」とあるのは、実際にはエラーではなく、エラーの発生場所を段階的に示すメッセージ(`Traceback`)です。

1

コード修正

2017/12/14 02:51

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  print(cv2.__version__)
6
6
  img = cv2.imread(r'c:\hoge\a.png')
7
7
  print(img) # 正常
8
- img = cv2.imread(r'c:\hogeあ.png')
8
+ img = cv2.imread(r'c:\hoge\あ.png')
9
9
  print(img) # None
10
10
  ```
11
11