在HDevelop中
dev_update_off() read_image (Image, 'D:/bb/tu/ma.jpg') rgb1_to_gray(Image,Image1) *將RGB圖像轉換為灰度圖像 get_image_size (Image1, Width, Height) dev_open_window(10,10,Width, Height,'black',WindowHandle) get_domain (Image1, Domain) gray_histo_range(Domain,Image1,0,255,256, Histo, BinSize) *計算直方圖:指定區域和灰度值 *參數1:要計算直方圖的區域 *參數2:輸入圖像 *參數3:要計算的最小灰度值。默認值0 *參數4:要計算的最大灰度值。默認值255 *參數5:要計算的灰度值數量-->參數3到參數4分成多少份 *參數6:返回的直方圖 *參數7:返回每份的像素數量 gen_region_histo (Region, Histo, 255, 255, 1) *將一個直方圖轉換為一個區域 *參數1:返回的區域 *參數2:輸入一個直方圖 *參數3:該直方圖中心y坐標 *參數4:該直方圖中心x坐標 *參數5:直方圖的比例因子 dev_display(Region)
在QtCreator中
HObject ho_Image, ho_Image1,ho_Disp, ho_Domain, ho_Region;
HTuple hv_Width, hv_Height, hv_WindowHandle;
HTuple hv_Histo, hv_BinSize;
ReadImage(&ho_Image, "D:/bb/tu/ma.jpg"); Rgb1ToGray(ho_Image, &ho_Image1); //將RGB圖像轉換為灰度圖像 GetDomain(ho_Image1, &ho_Domain); GrayHistoRange(ho_Domain, ho_Image1, 0, 255, 256, &hv_Histo, &hv_BinSize); //計算直方圖:指定區域和灰度值 //參數1:要計算直方圖的區域 //參數2:輸入圖像 //參數3:要計算的最小灰度值。默認值0 //參數4:要計算的最大灰度值。默認值255 //參數5:要計算的灰度值數量-->參數3到參數4分成多少份 //參數6:返回的直方圖 //參數7:返回每份的像素數量 GenRegionHisto(&ho_Region, hv_Histo, 255, 255, 1); //將一個直方圖轉換為一個區域 //參數1:返回的區域 //參數2:輸入一個直方圖 //參數3:該直方圖中心y坐標 //參數4:該直方圖中心x坐標 //參數5:直方圖的比例因子 RegionToMean(ho_Region, ho_Image1, &ho_Disp); //區域轉圖像 GetImageSize(ho_Disp, &hv_Width, &hv_Height); SetWindowAttr("background_color","black"); OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle); DispObj(ho_Disp, hv_WindowHandle);