2010-04-19 31 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