Когда я использовал 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;
}
Я ожидаю выхода изображений. Спасибо