

在HDevelop中
dev_update_off()
read_image (Image, 'D:/bb/tu/8.jpg')
get_image_size (Image, Width, Height)
regiongrowing (Image, Regions, 1, 1, 3, 1000)
*區域增長法分割圖像為區域
*此方法分割的區域可能有重疊
*參數1:輸入圖像
*參數2:分割后的輸出區域
*參數3Row和參數4Col :定義了在圖像內相鄰移動的模板的長和寬度大小
*參數5:兩個相鄰模板中心灰度值差,如果小於這個值就合並為同一區域
*參數6:作為一個限制,限定了用上面方法分割出的區域面積最終不能小於MinSize給定的值,否則不作為區域輸出
gen_empty_region (NoPixel)
*創建一個空區域
*count_obj返回1 這個區域的面積是0。
expand_region (Regions, NoPixel, RegionExpanded1, 'maximal', 'image')
*填充區域之間的間隙或分割重疊區域
*參數1:Regions要膨脹的區域
* 如果是區域:不執行膨脹,而是只分割重疊區域,將重疊區域均勻地分布到各個區域里。
* 因為與原區域的交集是在收縮操作后計算出來的,因此可能會導致輸出區域出現間隙。
* 這可以通過第二次調用expand_region來防止,並將原始區域的補集作為ForbiddenArea
*參數2:ForbiddenArea禁止膨脹的區域
*參數3:RegionExpanded1膨脹后結果區域
*參數4:迭代次數
* 默認值: 'maximal' 函數一直執行直到不可膨脹
* 建議值: 'maximal',0,1,2,3,5,7,10,15,20,30,50,70,100,200
* 傳遞0的話,返回未重疊的全部區域
* 典型值范圍:0≤ Iterations≤ 1000
*參數5:擴展模式
* 'image' 目的是填充區域之間的間隙,輸入區域將迭代地膨脹,直到它們觸及另一個區域或圖像邊緣
* 'region' 目的是分割重疊區域
dev_set_colored (10)
*設置輸出顏色的數量
dev_open_window (10, 10, Width, Height, 'black', WindowHandle)
dev_display (RegionExpanded1)

在QtCreator中
HObject ho_Image, ho_Regions, ho_NoPixel, ho_RegionExpanded1;
HTuple hv_Width, hv_Height, hv_WindowHandle;
ReadImage(&ho_Image, "D:/bb/tu/8.jpg");
GetImageSize(ho_Image, &hv_Width, &hv_Height);
Regiongrowing(ho_Image, &ho_Regions, 1, 1, 3, 1000);
//區域增長法分割圖像為區域
//此方法分割的區域可能有重疊
//參數1:輸入圖像
//參數2:分割后的輸出區域
//參數3Row和參數4Col :定義了在圖像內相鄰移動的模板的長和寬度大小
//參數5:兩個相鄰模板中心灰度值差,如果小於這個值就合並為同一區域
//參數6:作為一個限制,限定了用上面方法分割出的區域面積最終不能小於MinSize給定的值,否則不作為區域輸出
GenEmptyRegion(&ho_NoPixel);
//創建一個空區域
//count_obj返回1 這個區域的面積是0。
ExpandRegion(ho_Regions, ho_NoPixel, &ho_RegionExpanded1, "maximal", "image");
//填充區域之間的間隙或分割重疊區域
//參數1:Regions要膨脹的區域
// 如果是區域:不執行膨脹,而是只分割重疊區域,將重疊區域均勻地分布到各個區域里。
// 因為與原區域的交集是在收縮操作后計算出來的,因此可能會導致輸出區域出現間隙。
// 這可以通過第二次調用expand_region來防止,並將原始區域的補集作為ForbiddenArea
//參數2:ForbiddenArea禁止膨脹的區域
//參數3:RegionExpanded1膨脹后結果區域
//參數4:迭代次數
// 默認值: 'maximal' 函數一直執行直到不可膨脹
// 建議值: 'maximal',0,1,2,3,5,7,10,15,20,30,50,70,100,200
// 傳遞0的話,返回未重疊的全部區域
// 典型值范圍:0≤ Iterations≤ 1000
//參數5:擴展模式
// 'image' 目的是填充區域之間的間隙,輸入區域將迭代地膨脹,直到它們觸及另一個區域或圖像邊緣
// 'region' 目的是分割重疊區域
if (HDevWindowStack::IsOpen())
SetColored(HDevWindowStack::GetActive(),10);
//設置輸出顏色的數量
SetWindowAttr("background_color","black");
OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_RegionExpanded1, HDevWindowStack::GetActive());
