線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1042
推到 Plurk!
推到 Facebook!

請問各位前輩彩色的圖片可以直接做中值化嗎?請問怎麼做ㄋ?

尚未結案
s44788
一般會員


發表:1
回覆:1
積分:0
註冊:2006-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-13 00:10:33 IP:59.121.xxx.xxx 訂閱
請問各位前輩彩色的圖片可以直接做中值化嗎?請問怎麼做ㄋ?
以下為討論板上前輩的作品 (不過中值後圖片會變黑白)
//---------------------------------------------------------------------------
int __fastcall TForm1::Filter1(int i,int j)
{
int MPF;
int p[10],temp;
p[1]=p1[i-1][j-1];
p[2]=p1[i][j-1];
p[3]=p1[i 1][j-1];
p[4]=p1[i-1][j];
p[5]=p1[i][j];
p[6]=p1[i 1][j];
p[7]=p1[i-1][j 1];
p[8]=p1[i][j 1];
p[9]=p1[i 1][j 1];
for (int x=1;x<9 ;x )
{
for (int y=x 1;y<10;y )
{
if (p[x] {
temp=p[x];
p[x]=p[y];
p[y]=temp;
}
}
}
MPF=(p[5]);
if (MPF<0)
MPF=(-1)*MPF;
return (MPF);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if (Image1->Picture->Bitmap->Empty==true)
ShowMessage("請載入圖檔!!");
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Byte *ptr;
Bmp->Assign(Image2->Picture->Bitmap );
for (int i=0;iHeight;i )
{
ptr=(Byte*)Bmp->ScanLine[i];
for (int j=0;jWidth; j )
{
p1[j][i]=ptr[j*3];
}
}
for (int i=0;iHeight;i )
{
ptr=(Byte*)Bmp->ScanLine[i];
for (int j=0;jWidth; j )
{
ptr[j*3]=Filter1(j,i);
ptr[j*3 1]=Filter1(j,i);
ptr[j*3 2]=Filter1(j,i);
}
}
Image2->Picture->Assign(Bmp);
delete Bmp;
}
//---------------------------------------------------------------------------
第一次發文 不曉得 有沒有符合規定~
請各位板友版主見諒~
如有錯誤 我會改進ㄉ~!!
sew
一般會員


發表:2
回覆:54
積分:21
註冊:2003-08-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-10-13 17:12:56 IP:220.130.xxx.xxx 未訂閱
這支程式只有將一個單一顏色抓到p1, 並將p1存回rgb三個顏色, 自然會變黑白..

------
加油!
s44788
一般會員


發表:1
回覆:1
積分:0
註冊:2006-10-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-10-13 20:38:40 IP:59.121.xxx.xxx 訂閱
那請問前輩~我應該如何修正呢?
要怎ㄇ分別把R.G.B分別抓出~中值~再分別將R.G.B嵯回原圖呢?
===================引 用 文 章===================

這支程式只有將一個單一顏色抓到p1, 並將p1存回rgb三個顏色, 自然會變黑白..
?
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-10-14 01:05:37 IP:59.105.xxx.xxx 未訂閱
這邊有個問題,對於彩色的點,你怎麼去比較其大小,以便來排序?

假設有三個點 R(FF, 00, 00), G(00, FF, 00), B(00, 00, FF)
則中間值是多少呢??
你需要先有個合理的定義,才能進行彩色點中值化
對於灰階圖,就沒有這個問題了,反正只有一個值,直接比就行了
我個人是不知道是不是已經有前輩定義出來了,如果有,你才有辦法去做呀
系統時間:2024-05-04 20:56:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!