VC2017 + open cv + mfc ,编写凸包法程序遇到 “无效参数传递给了将无效参数视为严重错误的函数” 的问题
可能代码这样写就是错的,我是自己把灰度化后的图片进行二值化代入现成的凸包程序里了,麻烦各位指点迷津,感激!
void CMFC03Dlg::OnClickedButton11()
{
// TODO: 在此添加控件通知处理程序代码
Mat dst, bin, src2;
int thre = 100;
int threMax = 255;
cv::cvtColor(Src, dst, COLOR_RGB2GRAY);
threshold(dst, bin, thre, threMax, THRESH_BINARY);
vector<vector<Point>>contourPoints;
vector<Vec4i>hierarchy;
//bin.create(dst.rows, Src.cols, CV_8UC1);
/////////////////////////////就是在下面代码出现了无效参数错误///////////////////////////////////
findContours(bin, contourPoints, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
vector<vector<Point>>convexs(contourPoints.size());
vector<Vec4i>empty(0);
for (size_t i = 0; i < contourPoints.size(); i++)
{
convexHull(contourPoints[i], convexs[i], true, false);
}
RNG rng(12345);
src2 = Mat::zeros(dst.size(), CV_8UC3);
for (size_t k = 0; k < contourPoints.size(); k++)
{
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
Scalar color2 = Scalar(0, 255, 0);
drawContours(src2, contourPoints, k, color, 2, LINE_8, hierarchy, 0, Point(0, 0));
drawContours(src2, convexs, k, color2, 2, LINE_8, empty, 0, Point(0, 0));
}
IplImage *frame;
IplImage Image = IplImage(src2);
frame = &Image;
ShowImage(frame, IDC_STATIC1);
}