檔案狀態:    住戶編號:842889
 阿凱 的日記本
快速選單
到我的日記本
看他的最新日記
加入我的收藏
瀏覽我的收藏
GoodBye!My love 《前一篇 回他的日記本 後一篇》 水晶心得
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵  檢舉
篇名: Histogram
作者: 阿凱 日期: 2010.10.29  天氣:  心情:
Histogram Equalization中譯名為『直方圖均衡化』,當然就是針對圖片所研究出來的技術,
此技術主要能將模糊的圖片修改為更清晰,模糊邊線讓它能更清楚的看見。
其用在黑白照片上,也就是將彩色圖片binarized,但這項技術不適用於彩色(變色)和白色區域(不顯眼)頗大的圖片上。
程式如下:

//Visual studio C#
//1. private partial class Form1 : Form內假設
////public Bitmap bmp = null;
////private int[,] arr;
//***************************************************
//2. arr = new int[MyImage.Height, MyImage.Width]; //MyImage就是你的照片存放區
// for (int y = 0; y <Height; y++)
// {
// for (int x = 0; x <Width; x++)
// {
// arr[y, x] = bimage.GetPixel(x, y).R; //因為灰階化(r、g、b平均),所以只要取一種顏色
// }
// } //在灰階設定裡頭,記得將像素載入arr
//宣告HistogramEqualization()函式作均化的處理
//物件需求: 一個PictureBox命名為Processed_picture //顯示結果圖片區

public void HistogramEqualization() {
/**************計算直方圖*****************/
int[] GrayLevel = new int[256]; //陣列大小等於灰階個數

int height = arr.GetLength(0), width = arr.GetLength(1); //讀取陣列長寬
int[,] result = new int[height, width]; //儲存轉換後的結果

for (int i = 0; i <height; i++) {
for (int j = 0; j <width; j++) {
int inx = arr[i, j];
GrayLevel[inx]++;
}
}

//***************累計次數正規化,計算分部函數**********/
double[] Transform = new double[256]; //儲存比率

for (int i = 0; i <256; i++)
Transform[i] = (double)GrayLevel[i] / (double)(height * width);

for (int i = 1; i <256; i++) //累計分布函式
Transform[i] = Transform[i] + Transform[i - 1];

//*****************計算新灰階**********************/
for (int i = 0; i <height; i++) {
for (int j = 0; j <width; j++) {
int inx = arr[i, j];
result[i, j] = (int)(Transform[inx] * (double)255);
}
}

//*****************寫入processed_picture box*******************/
Bitmap resultBmp = new Bitmap(height, width, PixelFormat.Format24bppRgb);

for (int i = 0; i <height; i++)
{
for (int j = 0; j <width; j++)
{
resultBmp.SetPixel(j, i, Color.FromArgb(result[i, j], result[i, j], result[i, j]));
}
}

Processed_picture.Image = resultBmp;
}

//另一種用於C++上
//參考: http://www.cs.mcu.edu.tw/~s0170234/ip/ip5.htm
[(-|]
標籤:
瀏覽次數:515    人氣指數:515    累積鼓勵:0
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵 檢舉
給本文愛的鼓勵:  最新愛的鼓勵
GoodBye!My love 《前一篇 回他的日記本 後一篇》 水晶心得
 
給我們一個讚!