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

回答編集履歴

3

フルパス指定について追記

2017/11/29 05:55

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -44,4 +44,10 @@
44
44
  print(os.path.exists(path1)) # Trueであること
45
45
  im1 = cv2.imread(path1,0)
46
46
  # 略
47
+ ```
48
+
49
+ なお、フルパスで指定する場合は、`r"c:\~"`と記載してください。
50
+ (パス文字中の`\`を`\`とエスケープしてもよいですが、面倒なため)
51
+ ```
52
+ im1 = cv2.imread( r"C:\Users\wakimoto\testimg\Tulips.jpg", 0);
47
53
  ```

2

パス確認コード追記

2017/11/29 05:55

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -33,4 +33,15 @@
33
33
  File "C:\hoge.py", line 16, in main
34
34
  cv2.imshow('test',im1)
35
35
  cv2.error: ......\modules\highgui\src\window.cpp:281: error: (-215) size.width>0 && size.height>0 in function cv::imshow
36
+ ```
37
+
38
+ まずファイルパスおよびファイルを存在するかを確認することが先決です。
39
+ ```Python
40
+ import os
41
+ path1 = 'lena.jpg'
42
+ path1 = os.path.abspath(path1)
43
+ print(path1) # c:\hoge\huga\lena.jpg など意図したパスであること
44
+ print(os.path.exists(path1)) # Trueであること
45
+ im1 = cv2.imread(path1,0)
46
+ # 略
36
47
  ```

1

検証コード追記

2017/11/28 07:25

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,3 +1,36 @@
1
1
  画像が正常に読み込まれていない可能性が高いです。
2
2
  `im1 = cv2.imread("Tulips.jpg",0)`の後に`print(im1)`してみて結果が`None`表示されませんか?
3
- ファイルパスを`"/hoge/huga/Tulips.jpg"`などのようにフルパスで指定してみてください。
3
+ ファイルパスを`"/hoge/huga/Tulips.jpg"`などのようにフルパスで指定してみてください。
4
+
5
+ 検証コード
6
+ ```Python
7
+ import cv2
8
+ def main():
9
+ im1 = cv2.imread("存在しないファイル.jpg",0)
10
+ im2 = cv2.imread("存在しないファイル2.jpg",0)
11
+ print(im1)
12
+
13
+ hist1 = cv2.calcHist([im1],[0],None,[256],[0,256])
14
+ hist2 = cv2.calcHist([im2],[0],None,[256],[0,256])
15
+
16
+ d = cv2.compareHist(hist1,hist2,0)
17
+ print(d)
18
+
19
+ cv2.imshow('test',im1)
20
+
21
+ if __name__ == "__main__":
22
+ main()
23
+ ```
24
+
25
+ 実行結果例
26
+ ```
27
+ None
28
+ 1.0
29
+ OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ......\modules\highgui\src\window.cpp, line 281
30
+ Traceback (most recent call last):
31
+ File "C:\hoge.py", line 19, in <module>
32
+ main()
33
+ File "C:\hoge.py", line 16, in main
34
+ cv2.imshow('test',im1)
35
+ cv2.error: ......\modules\highgui\src\window.cpp:281: error: (-215) size.width>0 && size.height>0 in function cv::imshow
36
+ ```