2010-04-19 93 views
1

我試圖讓自適應閾值工作在python綁定到opencv (swig one - 無法獲得opencv 2.0工作,因爲我使用的是beagleboard作爲十字編譯還沒有工作)。我有一個灰度圖像(ccg.jpg)和下面的代碼OpenCV中的自適應閾值(版本1 - swig版本)

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 

我也試過同時具有源和目標參數都相同(灰度),我得到錯誤

Unsupported format or combination of formats

有沒有人有任何線索,我可能會出錯?

回答

2

我不是swig界面的用戶,但在C中,cvLoadImage函數默認情況下會將圖像加載爲3通道RGB,所以如果swig也是如此,那麼您將需要更改您的代碼將img加載爲灰度(CV_LOAD_IMAGE_GRAYSCALE),或者執行中間步驟將其轉換爲灰度,並使用cvCvtColor

+0

你好,謝謝你 - 我確實需要將加載的圖像轉換爲灰度,然後它對我很好 - 進入下一個挑戰:) – 2010-04-21 22:58:13