Ошибки в параметрах отчетов при использовании cvThreshold - PullRequest
0 голосов
/ 10 октября 2019

Когда я использовал cvThreshold, компилятор всегда сообщал о следующей ошибке:

ошибка C2664: «double cvThreshold (const CvArr *, CvArr *, double, double, int)»: 无法 将 参数1 c «cv :: Mat» 转换 为 «const CvArr *»

Это задача сегментации символов , Операционная среда VS 2013, Opencv 3.4.1.

int main()
{

    std::string pattern_jpg = "C:\\Users\\WZW\\desktop\\images\\*.jpg"; 

    std::vector<cv::String> image_files;
    cv::glob(pattern_jpg, image_files);
    if (image_files.size() == 0) {
        cout << "No image files.jpg" << endl;
        return 0;
    }

    for (unsigned int frame = 0; frame < image_files.size(); ++frame) 
{

        double otsuThreshold;
        Mat srcImage = cv::imread(image_files[frame], cv::IMREAD_GRAYSCALE);
        Mat srcImageGray;                      
        Mat otsuImage;
        otsuThreshold = OTSU(srcImageGray);
        cvThreshold(srcImageGray, otsuImage, otsuThreshold, 255, CV_THRESH_BINARY_INV);


        imshow("1", otsuImage);
        waitKey(0);


    }
    return 0;
}

Я ожидаю выхода изображений. Спасибо

1 Ответ

0 голосов
/ 10 октября 2019

Я не уверен, вызывает ли это вашу ошибку, но похоже, что вы никогда не инициализируете srcImageGray. srcImage уже находится в оттенках серого, поэтому вы можете просто использовать его вместо этого.

Надеюсь, это поможет, но я никогда не видел такого сообщения об ошибке раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...