一千萬個為什麽

搜索

OpenCV中的自適應閾值(版本1 - swig版本)

我正在嘗試使用python綁定到opencv進行自適應閾值處理 (swig one - 無法使用opencv 2.0,因為我使用的是 beagleboard ,因為交叉編譯還沒有工作)。我有一個灰度圖像(ccg.jpg)和以下代碼

import opencv
from opencv import highgui
img = highgui.cvLoadImage("ccg.png")
img_bw = opencv.cvCreateImage(opencv.cvGetSize(img), opencv.IPL_DEPTH_8U, 1)
opencv.cvAdaptiveThreshold(img, img_bw, 125, opencv.CV_ADAPTIVE_THRESH_MEAN_C, opencv.CV_THRESH_BINARY, 7, 10)

當我運行這個時,我得到錯誤:

RuntimeError:  openCV Error:
    Status=Formats of input arguments do not match
    function name=cvAdaptiveThreshold
    error messgae=
    file_name=cvadapthresh.cpp
    line=122

我也試過讓源和dest參數都相同(灰度),我得到了錯誤

不支持的格式或格式組合

有沒有人有任何關於我可能出錯的線索?

最佳答案

我不是swig接口的用戶,但是在C中, cvLoadImage 函數默認將圖像加載為3通道RGB,所以如果對於swig也是如此,那麽你將需要更改代碼以將 img 加載為灰度( CV_LOAD_IMAGE_GRAYSCALE )或執行中間步驟以使用 cvCvtColor 將其轉換為灰度。

轉載註明原文: OpenCV中的自適應閾值(版本1 - swig版本)