[問題] 半色調轉換的問題
為什麼我的程式跑出來的結果只是二值化的結果
我用的是error diffusion阿~~
我有把陣列的值印出來看過
看起來都沒有錯阿
可以救救我阿~~!!!!!!!!!!
我現在要把灰階轉成半色調
用的是error diffusion這個方法
他的矩陣是 __ __
1 | |
____ | x 7 |
16 |3 5 1 |
|_ _|
步驟一:假設影像A,取127做門檻值,先選A坐左上角的PIXEL值轉換
<127的變成O,>127的變成255。
步驟二:x為步驟一所處理的pixel值A[0,0],由右到左,上到下計算。
EX:
__ __
| 150 130 120|
| 150 100 70|
| 140 100 90|
- -
|| 步驟一轉換成255
ˇ
__ __
| 255 130 120|
| 150 100 70|
| 140 100 90|
- -
||
ˇ
__ __
| 255 85 120|
| 117 93 70|
| 140 100 90|
- -
1.右邊:130+7/16(150-255)=85
2.左下:沒有
3.下面:150+5/16(150-255)=117
4.右下:100+1/16(150-255)=93
然後又從85變成0
繼續做步驟二
現在我的程式跑出來的結果是
http://www.wretch.cc/album/show.php?i=insjoy&b=9&f=1187142617&p=0
但是我要的結果應該類似於
http://www.wretch.cc/album/show.php?i=insjoy&b=9&f=1187142618&p=1
這樣~"~!!
我的程式碼為
Bitmap binarybmp =(Bitmap)pictureBox1.Image;
int[] arr = new int[binarybmp.Height * binarybmp.Width];//存每個pixel顏色
int[,] a = new int[binarybmp.Height , binarybmp.Width];
int[,] b = new int[binarybmp.Height , binarybmp.Width];
int qerror = 0;
for (int i = 0; i < binarybmp.Height; i++)
{
for (int j = 0; j < binarybmp.Width; j++)
{
a[i, j] = binarybmp.GetPixel(j, i).R;
if (a[i,j] < 127)
{
b[i, j] = 0;
}
else
{
b[i, j] = 255;
}
qerror = a[i,j] - b[i,j];
if (j < (binarybmp.Width-1))
{
a[i,j+1] = ((int)(7 / 16) * qerror + a[i,j+1]);
}
if (i< (binarybmp.Height-1) && j>= 1)
{
a[i + 1, j - 1] = a[i + 1, j - 1] + (int)(3 / 16 * qerror);
a[i + 1, j] = a[i + 1, j] + (int)(5 / 16 * qerror);
}
if (j < (binarybmp.Width-1) && i< (binarybmp.Height-1))
{
a[i+1,j+1] = a[i+1,j+1] + (int)(1 / 16 * qerror);
}
if (b[i, j] == 255)
{ binarybmp.SetPixel(j, i, Color.White); }
else
{ binarybmp.SetPixel(j, i, Color.Black); }
}
}
pictureBox1.Image = binarybmp;
}
拜託教我一下阿>"<
謝謝~!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.194.189
→
10/02 08:33, , 1F
10/02 08:33, 1F
→
10/02 08:33, , 2F
10/02 08:33, 2F
→
10/02 08:34, , 3F
10/02 08:34, 3F
→
10/02 09:34, , 4F
10/02 09:34, 4F
→
10/02 09:35, , 5F
10/02 09:35, 5F
→
10/02 09:35, , 6F
10/02 09:35, 6F
→
10/02 09:35, , 7F
10/02 09:35, 7F
→
10/02 09:42, , 8F
10/02 09:42, 8F
討論串 (同標題文章)