34988


AnacondaでOpenCVを学習しております。指定画像を2値化して表示をしたいのですが、エラーが返されます。  
使用環境: Anaconda3(Python 2.7.13), Windows 7, OpenCV 3.2.0

試みた実行したのは下記[threshold.py]です。

[code]

    # coding: UTF-8
    import cv2
    
    img = cv2.imread('01.png', cv2.COLOR_BGR2GRAY)
    
    ret, th_Otsu = cv2.threshold(img, 0, 255, cv2.THRESH_TOZERO + cv2.THRESH_OTSU)
    
    cv2.imshow('01_Otsu.png', th_Otsu)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
[/code]

下記 実行時のエラーです。

[code]

    OpenCV Error: Assertion failed (src.type() == CV_8UC1) in cv::threshold, file C:\build\master_winpack-bindings-win32-vc14-static\opencv\modules\imgproc\src\thresh.cpp, line 1356
    Traceback (most recent call last):
      File "C:/Users/admin/.spyder-py3/threshold.py", line 7, in <module>
        ret, th_Otsu = cv2.threshold(img, 0, 255, cv2.THRESH_TOZERO + cv2.THRESH_OTSU)
    cv2.error: C:\build\master_winpack-bindings-win32-vc14-static\opencv\modules\imgproc\src\thresh.cpp:1356: error: (-215) src.type() == CV_8UC1 in function cv::threshold
    
[/code]

* * *

[+
cv2.THRESH_OTSU]を消して実行すれば正常に表示できるのですが、しきい値を自動で決めたいのでcv2.THRESH_OTSUが使いたいです。OTSUが使えない実行環境なのでしょうか？  
調べてみたのですが明確な答えがわかりませんでした。  
ご助言を頂ければ助かります、よろしくお願いいたします。


CC BY-SA 3.0
2017-05-24T07:26:30.463
34981
2017-05-24T12:15:29.210
2017-05-24T07:46:02.603
23337
23337
question
python opencv 画像 anaconda
エラー　画像を自動でしきい値を決めて2値化したい。大津のアルゴリズム


>
[code]

>     img = cv2.imread('01.png', cv2.COLOR_BGR2GRAY)
>  
[/code]

`cv2.imread`メソッドへの第二引数が誤っています。画像ファイルをグレイスケールとして読み込む場合は、定数`cv2.IMREAD_GRAYSCALE`または値`0`を指定してください。（`cv2.COLOR_BGR2GRAY`は値`6`です）

[code]

     img = cv2.imread('01.png', 0)
    
[/code]


CC BY-SA 3.0
2017-05-24T12:15:29.210
34988
2017-05-24T12:15:29.210
49
34981
answer