Адаптивный порог в OpenCV (версия 1 - версия swig) - PullRequest
1 голос
/ 19 апреля 2010

Я пытаюсь заставить адаптивный порог работать в привязке 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

Я также пытался иметь одинаковые аргументы source и dest (в оттенках серого), и я получаю сообщение об ошибке

Неподдерживаемый формат или комбинация форматов

Кто-нибудь знает, где я могу пойти не так?

1 Ответ

2 голосов
/ 21 апреля 2010

Я не пользователь интерфейса swig, но в C функция cvLoadImage загружает изображение как 3-канальный RGB по умолчанию, поэтому, если это верно и для swig, вам понадобится либо измените код для загрузки img в оттенках серого (CV_LOAD_IMAGE_GRAYSCALE) или выполните промежуточный шаг для преобразования его в оттенки серого с помощью cvCvtColor.

...