全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1572
推到 Plurk!
推到 Facebook!

影像顯示最佳化-直方圖後的灰階位移

尚未結案
dorisfish
一般會員


發表:5
回覆:3
積分:1
註冊:2004-12-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-09 09:18:52 IP:61.222.xxx.xxx 未訂閱
int Nj,b; for(int y=0;y < Height;y++) { ....for(int x=0;x < Width;x++) ....{ .......double temphh=histogram_data[x][y];//讀取原始影像像素值 .......for(int i=0;i<=temphh;i++) .......{ ..........Nj=Nj+histogray[i];//灰階累積 .......}  .......b=(float)255.0*(Nj)/(co_Height*co_Width);//直方圖後對應的像素值(界在0-255之間) .......Image4->Canvas->Pixels[x][y]=(TColor)RGB(b,b,b);//繪製直方圖等化後的圖                               .......n[b]=n[b]+1; .......Nj=0; ....} } 我想請問一下,這是按照所學的課本上定義來做的直方圖(我認為是對的^^") 現在想我請教一個在直方圖後,有關於顯示影像的問題... 如果我想要將直方圖等化後的組距(統計用詞)由255開始放置起...我該怎樣修改我的程式?舉例來說,假設直方圖後gray[5]={0,1,2,0,1},我想更動成gray[5]={1,0,2,1,0}不是反相喔:p  不知道這樣的問題各位前輩懂不懂@@ 需要這個步驟是因為,萬一影像底色是黑色(且佔極重要比例),當我們坐直方圖等化,會將灰階值0位移到灰色(偏白)的灰階值上...就會使影像顯示不清楚,想要就針對這一部份的圖像作討論    本來想對b做處理,先找出像素分佈的最大跟最小值,再利用類似正規化的觀念去做shift的動作,可以知道跟原本要求不一樣,但是只要達到最佳化就可以接受,但是這個辦法行不通><如果(255-b)也只是將他反相而已    該怎樣解決呢???    如果之前有人發表過,煩請告訴我關鍵字眼了<(_ _)>感謝大家 ps.抱歉,請原諒我每一行程式前都加上"...",因為我試了許久,每次預覽都無法使程式對齊,才出此下策,如果有哪一位前輩可以指教,一樣很高興^_^"    發表人 - dorisfish 於 2005/01/09  09:20:36    發表人 - dorisfish 於 2005/01/09  09:21:05    發表人 - dorisfish 於 2005/01/09  09:21:49    發表人 - dorisfish 於 2005/01/09  09:22:23    發表人 - dorisfish 於 2005/01/09  09:45:12< >< > 發表人 - dorisfish 於 2005/01/09 09:54:05 發表人 - dorisfish 於 2005/01/09 09:56:17 發表人 - dorisfish 於 2005/01/09 11:47:25
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-09 16:31:16 IP:211.76.xxx.xxx 未訂閱
dorisfish 您好: 關於您的問題尚無法精確了解其意義,所以暫時就幫不上忙! 不過看您為了程式對齊花了這麼多次來修改,倒是能提供您一點意見。 其實只要將您的程式碼前後用[code]...您的程式碼...[\code]括住即可依原先程式碼的編排格式呈現,您且試試。 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
dorisfish
一般會員


發表:5
回覆:3
積分:1
註冊:2004-12-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-09 18:25:21 IP:61.31.xxx.xxx 未訂閱
謝謝您喔^^" 但其實我是在修改問題內容@@因為直方圖等化完會有很多結果,而後再依據結果是做呈現上的最佳化(更動灰階度) 如果是黑底(灰階0佔很大成分) 假設只有5個灰階(原本是255),直方圖等化完呈現是h[5]={0,1,2,0,1}(總灰階數4個)想要呈現的卻是h[5]={1,0,2,1,0}沒有更動灰階的順序,只是更動他的位置,原本回傳回去根據直方圖所計算出機率的組距是相對於灰階值0開始,現在想要相對於灰階值255 因為直方圖就是利用出現的機率,去拉開整張圖的分布,但是不改變資料順序,而所拉開的距離(組距),現在都是由灰階0開始,而我想由灰階255開始 <(_ _)>不知道我形容有沒有好一點 感謝大家
arisaka_matsuri
高階會員


發表:25
回覆:205
積分:231
註冊:2003-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-09 19:28:44 IP:140.113.xxx.xxx 未訂閱
dear dorisfish: 看了許久......還真難懂,不容易抓到你要表達的意思。  
引言:假設只有5個灰階(原本是255),直方圖等化完呈現是h[5]={0,1,2,0,1}(總灰階數4個)想要呈現的卻是h[5]={1,0,2,1,0}沒有更動灰階的順序,只是更動他的位置,原本回傳回去根據直方圖所計算出機率的組距是相對於灰階值0開始,現在想要相對於灰階值255
照上述假設,那不就把 h[] 中元素的擺放順序顛倒就好?還有一點我在意的是,「總灰階數4個」是什麼意思?是指有4個像素嗎? 實在看的霧煞煞~~或許是問題的描述用了太多的贅詞去形容,反而讓人很難理解...
dorisfish
一般會員


發表:5
回覆:3
積分:1
註冊:2004-12-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-09 20:53:33 IP:61.30.xxx.xxx 未訂閱
>< 假設我有一張圖,用灰階0-4來表示 他的灰階統計出來是h[5]={0,1,2,0,1} 我希望做一個轉換 能變成 h[5]={1,0,2,1,0}    不是做反相喔... 像圖中的表示方法 將距離倒置 <(_ _)>再次麻煩大家了
justdo
高階會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-10 21:53:26 IP:221.169.xxx.xxx 未訂閱
從你的例子來說 h[5]={0,1,2,0,1} 變成 h[5]={1,0,2,1,0} 就是前後顛倒而已 h[5]={0,1,2,0,1} 由右讀回左邊就是{1,0,2,1,0}...
系統時間:2024-05-20 22:14:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!