0

最近、OSXでOpenCVプログラミングを開始しました(テキストエディターを使用してターミナルでコンパイルするだけです)。インターネットで非常に便利なプログラムを見つけましたが、実行できないようです。これはコードです:

#include <stdio.h>
#include "cv.h"
#include <highgui.h>
#include <iostream>
#include <cstdio>
using namespace std;
int widthU;
int heightU;
int xU = 0;
int yU = 0;
int main(int argc, char *argv[])
{
    IplImage *imgPicThres, *imgPicInput;
    imgPicInput = cvLoadImage("bitmap.png", -1);
    imgPicThres = cvCreateImage(cvSize(imgPicInput->width, imgPicInput->height), IPL_DEPTH_8U, 1);
    cvNamedWindow("Input picture", 0);
    cvNamedWindow("Thres picture", 0);
    //Picture
    //cvThreshold(imgPicInput,imgPicThres,100,255,CV_THRESH_BINARY);
    cvAdaptiveThreshold(imgPicInput, imgPicThres,255,CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY,75,10);
    cvShowImage("Input picture", imgPicInput);
    cvShowImage("Thres picture", imgPicThres);
    while (true)
    {
        int c = cvWaitKey(10);
        if(c==27)
            break;
    }
    cvDestroyWindow("Input picture");
    cvDestroyWindow("Thres picture");
    return 0;
}

そして、これは私が得るエラーです:

OpenCV Error: Assertion failed (src.size == dst.size && src.type() == dst.type()) in cvAdaptiveThreshold, file /opt/local/var/macports/build/_opt_mports_dports_graphics_opencv/opencv/work/opencv-2.4.5/modules/imgproc/src/thresh.cpp, line 873
libc++abi.dylib: terminate called throwing an exception
Abort trap: 6

この行を変更しようとしました

ImgPicThres = cvCreateImage(cvSize(imgPicInput->width, imgPicInput->height), IPL_DEPTH_8U, 1);

の中へ

ImgPicThres = cvCreateImage(cvGetSize(imgPicInput), IPL_DEPTH_8U, 1);

運がない。OpenCV は Macports 経由でインストールされ、最新バージョンを実行しています。どんな助けでも大歓迎です。ありがとう!

4

3 に答える 3

1
imgPicInput = cvLoadImage("bitmap.png",CV_LOAD_IMAGE_GRAYSCALE);

読み取った画像が実際にグレースケールであることを確認します。

于 2013-05-23T10:49:11.013 に答える
0

perfanoff からの提案に加えて、イメージを作成するのではなく、イメージを複製したいと思います。

imgPicThres = cvCloneImage(imgPicInput );
于 2013-05-23T11:13:23.180 に答える
0

答えは見つかりましたが、言及するのを忘れていました。エラーが示すように、imgPicInput と imgPicThres は同じサイズとタイプではありません。また、私が見ていなかった画像チャンネルの後に見ることになっていました。

于 2013-06-25T16:17:43.387 に答える