光源問題 |
尚未結案
|
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
|
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
Dear YAUYAU
下面的code參考看看
//--------------------------------------------------------------------------- #includeHSI與RGB的轉換公式請自行參考書籍 and參考看看是不是你要的 //--------- 偏聽則誨,兼聽則明 如果那個人是我..那該多好 |
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
不知道是要改調色盤呢還是要改像素值< >
真素一點基礎也沒有< >
改像素值直的方式可以參考如下
//------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { for (int y=0;y//--------- 偏聽則誨,兼聽則明 如果那個人是我..那該多好 |
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
|
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
YAUYAU 您好: intensity =gray level [0,255] hue =angle[0度.360度] saturation =percentage[0,1] 1.不考慮光源,處理方式我認為將I設成定值之後再轉回RGB顯示便是 2.3.你期望會有什麼改變??? (我想整體會變(當I_afterps..除第四點有把握外,,其餘保留,,歡迎再討論 /* 偏聽則誨,兼聽則明 * |
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
|
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
YAUYAU您好
我的想法是這樣的 1......剛測試了一下,發現如果將S設為定值,只考慮H,影像完全不能看...
我想妳看到的圖形應該是含有各種顏色的一張圖吧!
一張影像是由RGB(IHS...)所建立而成,將他的兩個變數設成常數,,以RGB來看他會變成一條直線,,以IHS來看則成一個圓(I=常數,S=常數) 2.所以如連續影像要不受光源影響的話,無法用HSI做到囉?
是否可以將所有得到的影像轉成IHS model,將I設成定值(每張都一樣),,再轉回RGB來顯示 請問如果是調整長條圖,可以將不同亮度的影像修正的差不多嗎?
嗯,,若單純只因為光源問題,,我想妳是對的
|
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
引言: YAUYAU您好 我的想法是這樣的 1......剛測試了一下,發現如果將S設為定值,只考慮H,影像完全不能看... 我想妳看到的圖形應該是含有各種顏色的一張圖吧! 一張影像是由RGB(IHS...)所建立而成,將他的兩個變數設成常數,,以RGB來看他會變成一條直線,,以IHS來看則成一個圓(I=常數,S=常數) 2.所以如連續影像要不受光源影響的話,無法用HSI做到囉? 是否可以將所有得到的影像轉成IHS model,將I設成定值(每張都一樣),,再轉回RGB來顯示 請問如果是調整長條圖,可以將不同亮度的影像修正的差不多嗎? 嗯,,若單純只因為光源問題,,我想妳是對的Fm大大您好: 承如你之前說的,每一張影像一定會受光源影響,如不考慮I, 其chromaticity(H S)中,半徑(S)也不同,就算將I值設成定值也無法做到。 (之前就跑過程式了,但結果還是一樣,現在終於知道原因了 ) 努力了很久,才知道 > |
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
YAUYAU你好
這個實驗怎麼樣????
//----
1.取下第一張圖之後,轉成ihs model,此時你得到一個I1[size_x][size_y];H1[][],S1[][]
2.調整光源其餘不變
3.取夏得第二張圖形,轉成ihs model,的到I2,H2,S2,用I1,H2,S2轉成rgb,來顯示
4.比較這兩張圖...(我直覺告訴我說這兩張還是會不同,因為原本的(H+S不一樣,面積大小不一樣).
//-------
另外
...用長條圖來調整光源的問題,該從哪下手研究呢?
是像這樣的方式嗎
0
|
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
YAUYAU 您好: 有個建議您不妨參考看看:
Rafael C. Gonzalez, et al., "Digital Image Processing," 2/e.
第3.3.2節中提到的方法,histogram matching or histogram specification. 大概的想法是:
以另一張已知圖像的直方分佈(histogram)來替換原來影像的直方分佈。 因為您的圖形大致差不多,只是亮度可能因拍攝條件的不同而使得影像品質有差異。
所以如果您能找到一張相對好的圖形,記下它的直方分布,再套用在其他圖上,對於亮度應該會有改善的。 您參考看看!
|
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
richtop大大您好:
我不太懂你所說的意思,如何替換原來的影像呢?
有演算法or程式可以參考嗎? 謝謝喲 <>< face="Verdana, Arial, Helvetica">引言:
YAUYAU 您好: 有個建議您不妨參考看看:
Rafael C. Gonzalez, et al., "Digital Image Processing," 2/e.
第3.3.2節中提到的方法,histogram matching or histogram specification. 大概的想法是:
以另一張已知圖像的直方分佈(histogram)來替換原來影像的直方分佈。 因為您的圖形大致差不多,只是亮度可能因拍攝條件的不同而使得影像品質有差異。
所以如果您能找到一張相對好的圖形,記下它的直方分布,再套用在其他圖上,對於亮度應該會有改善的。 您參考看看! >>< face="Verdana, Arial, Helvetica">
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
YAUYAU 您好:
引言: richtop大大您好: 我不太懂你所說的意思,如何替換原來的影像呢? 有演算法or程式可以參考嗎? 謝謝喲 >>< face="Verdana, Arial, Helvetica"> 想像已知第一張圖的histogram,而現在希望第二張圖的histogram就跟第一張圖一樣。所以必須利用機率中的累積機率分布函數來達成這個目標,相關細節請參考前述所提相關書籍,一時間還說不清楚。 我嘗試用您的第一張圖(相對較亮)所取得的histogram分布,將之套用再第二張圖上,好像有改善,轉換後的結果如下:(左:轉換後,右:轉換前) 我的想法是:如果能找一張類似但十分清晰的參考圖,利用它來轉換其它的影像,似乎能得到好的結果。 這部分恐怕需要您再嘗試與確認! 程式如下連結,因為是從我之前寫的程式中擷取出來的,但求能給您一個參考,因此一切從簡!所以可讀性或許不太高,如果您要研究可能得花些功夫了! < href="http://delphi.ktop.com.tw/loadfile.php?TOPICID=21367271&CC=477869">http://delphi.ktop.com.tw/loadfile.php?TOPICID=21367271&CC=477869 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
|
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
richtop大大您好:
剛看過您的程式了,有一點疑惑,在toHistogramize那個function中
主要做的是先將image轉成灰階,取出明度分佈後的這段程式碼可以註解一下嗎?
看不懂最重要的部分 < class="code">
//factor意義?
factor = 1./((float)mWidth*mHeight);
//我看了DIP的機率公式 ,這個for迴圈就是積分嗎?
hist[0] *= factor; // form Pr(r) to T(r)
for (row=1; row<256; row )
{ hist[row] *= factor;
hist[row] = hist[row-1];
if ( hist[row]>1 ) hist[row]=1.0;
}
// 還是不懂以下再做什麼
// from Tr(r) equal to s[.]
int gray, z;
float pz, level;
factor = 1.0/256; if ( withModel ) // hist[.] is the s[.]
{ z=0;
for (gray=0; gray<256; gray )
{ while ( hist[gray]>mDisModel[z] )
{ if ( z>255 )
{ z = 255;
break;
}
}
//dis[z]=hist[gray];
hist[gray] = z; }
}
else
{ for (gray=0; gray<256; gray ) hist[gray]=gray;
} index=0L; 謝謝
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
YAUYAU 您好: 程式碼部分說明如下,請參考。
// 歸一化累積機率密度函數 factor = 1./((float)mWidth*mHeight); hist[0] *= factor; // form Pr(r) to T(r) for (row=1; row<256; row ) { hist[row] *= factor; hist[row] = hist[row-1]; if ( hist[row]>1 ) hist[row]=1.0; } // from Tr(r) equal to s[.] // 使用累積機率密度函數相等的概念,將影像灰階值的轉換對應關係找出來。 // int gray, z; float pz, level; factor = 1.0/256; if ( withModel ) // hist[.] is the s[.] { z=0; for (gray=0; gray<256; gray ) { while ( hist[gray]>mDisModel[z] ) // 條件成立表示目前(hist[.])累積的結果比 { if ( z>255 ) // 希望達到的(mDisModel[.])還多,也就是 { z = 255; // 說需要將此刻的灰階值轉換成更高的值, break; // 這麼一來,就能讓mDisModel[.]的 } // 值追上來。而灰階值轉換就是根據 } // 這個原理找出來的。 //dis[z]=hist[gray]; hist[gray] = z; } } else { for (gray=0; gray<256; gray ) hist[gray]=gray; }RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: 各位大大好: 我想問一個跟光源有關的問題 1. 如果不考慮光源的影響,該怎麼處理影像?影像最後的顯現結果為何? 2. 我的想法如下: 先將影像轉到HSI domain上,然後對I值處理,如果將I值設成常數,如128的話,再轉回RGB顯像,影像會改變嗎? 我覺得這樣應該是會改變的,但是結果並沒有改變 >>< face="Verdana, Arial, Helvetica"> YAUYAU你好: 推薦一個HSV網站給你參考,裡面有一個程式,玩玩看,希望對你有幫助 [url="http://www.efg2.com/Lab/Graphics/Colors/HSV.htm"]HSV[/url] [url="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=40479"][問題]HSV的轉換[/url] |
YAUYAU
一般會員 發表:38 回覆:26 積分:12 註冊:2003-09-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |