看板 Knuckles
作者 標題 DIP作業二
時間 2007年11月08日 Thu. PM 03:42:12
計算並產生一張圖的hitogram
int x,y; CImage img1; //產生一個CImage物件 img1.LoadBmpFile("lena_gray.bmp"); // 載入圖片 int height= img1.GetHeight(); // 取得圖檔的高 int width = img1.GetWidth(); // 取得圖檔的寬 //宣告一個長度為256的int陣列來存histogram int hist[256]; //將每個值初始化為0 int i; for(i=0;i<256;i++) hist[i] = 0; //計算histogram for(y=0; y<height; y++) for(x=0; x<width; x++) hist[img1.GetGrayPixel(x,y)] ++; //計算histogram的最大值 int hist_max = 0; for(i=0;i<256;i++) if(hist[i] > hist_max) hist_max = hist[i]; //將histogram存成圖檔 CImage img1_hist; int hist_h = 256; //設定histogram圖檔的高 img1_hist.Create(256,hist_h,8); for(x=0;x<256;x++) for(y=0;y<(hist[x]*((double)hist_h/hist_max));y++) img1_hist.SetGrayPixel(x,hist_h-y-1,255); img1_hist.SaveBmpFile("lena_hist.bmp"); printf("已建立histogram,檔名為lena_hist.bmp\n"); printf("hist的最大值為:%d\n",hist_max);※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles 來自: 140.112.175.130 時間: 2007-11-08 15:42:12
※ 編輯: Knuckles 來自: 140.112.175.130 時間: 2009-05-31 15:16:20
※ 編輯: Knuckles 時間: 2010-10-23 04:40:24 來自: 111-248-0-184.dynamic.hinet.net
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 1086
回列表(←)
分享