在HDevelop中
read_image (Image9, 'D:/bb/tu/9.jpg')
rgb1_to_gray (Image9, GrayImage)
threshold (GrayImage, Region, 200, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 15400, 15500)
smallest_rectangle1 (SelectedRegions, Row1, Column1, Row2, Column2)
*返回最小外接正矩形数据
gen_rectangle1 (Rectangle, Row1+10, Column1-10, Row2-10, Column2+10)
*创建一个平行于坐标轴的矩形区域
*说明:行往里缩小的目的:亚像素边缘时可以去掉上下的边
reduce_domain (GrayImage, Rectangle, ImageReduced)
**获取区域图像
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)
*亚像素边缘
sort_contours_xld (Edges, SortedContours, 'upper_left', 'true', 'column')
*xid轮廓进行排序
*参数1:要排序的xld
*参数2:排序后的xld
*参数3:排序方法
* 'character' 从左到右,从上到下的顺序
* 'lower_left' 外接矩形的左下角
* 'lower_right' 外接矩形的右下角
* 'upper_left' 外接矩形的左上角
* 'upper_right' 外接矩形的右上角
*参数4:'true'是升序排列,'false'是降序排列
*参数5:先按行或列排序,然后按列或行排序 'column', 'row'
*【我的问题:不管是升序还是降序,都是从右到左 ??】
select_obj (Edges, ObjectSelected, 1)
select_obj (Edges, ObjectSelected1, 2)
get_contour_xld (ObjectSelected, Row, Col)
get_contour_xld (ObjectSelected1, Row3, Col1)
在QtCreator中
HObject ho_Image9, ho_GrayImage, ho_Region, ho_ConnectedRegions;
HObject ho_SelectedRegions, ho_Rectangle, ho_ImageReduced;
HObject ho_Edges, ho_SortedContours, ho_ObjectSelected;
HObject ho_ObjectSelected1;
HTuple hv_Row1, hv_Column1, hv_Row2, hv_Column2;
HTuple hv_Row, hv_Col, hv_Row3, hv_Col1;
ReadImage(&ho_Image9, "D:/bb/tu/9.jpg");
Rgb1ToGray(ho_Image9, &ho_GrayImage);
Threshold(ho_GrayImage, &ho_Region, 200, 255);
Connection(ho_Region, &ho_ConnectedRegions);
SelectShape(ho_ConnectedRegions, &ho_SelectedRegions, "area", "and", 15400, 15500);
SmallestRectangle1(ho_SelectedRegions, &hv_Row1, &hv_Column1, &hv_Row2, &hv_Column2);
//返回最小外接正矩形数据
GenRectangle1(&ho_Rectangle, hv_Row1+10, hv_Column1-10, hv_Row2-10, hv_Column2+10);
//创建一个平行于坐标轴的矩形区域
//说明:行往里缩小的目的:亚像素边缘时可以去掉上下的边
ReduceDomain(ho_GrayImage, ho_Rectangle, &ho_ImageReduced);
//*获取区域图像
EdgesSubPix(ho_ImageReduced, &ho_Edges, "canny", 1, 20, 40);
//亚像素边缘
SortContoursXld(ho_Edges, &ho_SortedContours, "upper_left", "true", "column");
//xid轮廓进行排序
//参数1:要排序的xld
//参数2:排序后的xld
//参数3:排序方法
// 'character' 从左到右,从上到下的顺序
// 'lower_left' 外接矩形的左下角
// 'lower_right' 外接矩形的右下角
// 'upper_left' 外接矩形的左上角
// 'upper_right' 外接矩形的右上角
//参数4:'true'是升序排列,'false'是降序排列
//参数5:先按行或列排序,然后按列或行排序 'column', 'row'
//【我的问题:不管是升序还是降序,都是从右到左 ??】
SelectObj(ho_Edges, &ho_ObjectSelected, 1);
SelectObj(ho_Edges, &ho_ObjectSelected1, 2);
GetContourXld(ho_ObjectSelected, &hv_Row, &hv_Col);
GetContourXld(ho_ObjectSelected1, &hv_Row3, &hv_Col1);