64,282
社区成员
发帖
与我相关
我的任务
分享
//声明:
...
int** address_1, address_Number_1;...
address_1 = car_License_box(img_13, img_14, &address_Number_1);
for (j = 0; j< address_Number_1; j++){
int** car_License_box(Mat& mat1, Mat& mat2, int* number){
Mat threshold_output;
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
Point s1, s2;
int width_1, height_1;
int width = mat1.rows;
int height = mat1.cols;
int sum = 0;
int morph_elem = 3;
int morph_size = 3;
int** a = (int**)malloc(width * sizeof(int*));
//腐蚀
Mat element = getStructuringElement(MORPH_RECT, Size( 2*morph_size + 1, 2*morph_size+1 ), Point( -1, -1));
dilate(mat1, mat1, element);
/// 找到轮廓
findContours(mat1, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );
/// 多边形逼近轮廓 + 获取矩形和圆形边界框
vector<vector<Point> > contours_poly( contours.size() );
vector<Rect> boundRect( contours.size() );
vector<Point2f>center( contours.size() );
vector<float>radius( contours.size() );
for( int i = 0; i < contours.size(); i++ )
{ approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true );
boundRect[i] = boundingRect( Mat(contours_poly[i]) );
minEnclosingCircle( contours_poly[i], center[i], radius[i] );
}
/// 画多边形轮廓 + 包围的矩形框 + 圆形框
mat2 = Mat::zeros(mat1.size(), CV_8UC3 );
for( int i = 0; i< contours.size(); i++ )
{
s1 = boundRect[i].tl();
s2 = boundRect[i].br();
height_1 = s2.x - s1.x;
width_1 = s2.y - s1.y;
if((height_1 > (3 * width_1)) && (width_1 > (width / 2))){
a[sum] = (int* )malloc(4 * sizeof(int));
a[sum][0] = s1.x;
a[sum][1] = s1.y;
a[sum][2] = s2.x;
a[sum][3] = s2.y;
sum += 1;
}
}
*number = sum;
return a;
}
*number = sum;
return a;
,就报错Debug Assertion Failed (dbgheap.c Line:1424 Expression: _pFirstBlock == pHead).
address_1 = car_License_box(img_13, img_14, &address_Number_1);