OpenCV中的自适应阈值(版本1 - swig版本)
我正在尝试在Python中使用OpenCV库实现自适应阈值处理(使用的是swig绑定,因为我在使用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
我还尝试过把源图像和目标图像都设置为同一张灰度图像,但结果还是出现了这个错误:
不支持的格式或格式组合
有没有人能给我一些提示,看看我哪里可能出错了?
1 个回答
2
我不是使用swig接口的用户,但在C语言中,cvLoadImage
这个函数默认是以3个通道的RGB格式来加载图像的。如果swig也是这样的话,那么你需要修改你的代码,把img
加载为灰度图像(使用CV_LOAD_IMAGE_GRAYSCALE
),或者先加载成RGB格式,再通过cvCvtColor
这个函数把它转换成灰度图像。