[bcb][問題]縮圖長寬比例失真 |
尚未結案
|
plihui
初階會員 發表:88 回覆:96 積分:41 註冊:2003-07-03 發送簡訊給我 |
我今天寫了一個縮圖程式
結果發現縮圖產生了失真
比如說:一個彎月->縮圖後(很肥的彎月)
我的程式碼如下
void TForm2::down_sampling(TImage *Source,TImage *Target) { int sx=0,sy=0; int dy=(int)(Source->Height/64); dy=(dy>1)?(int)dy:1; int dx=(int)(Source->Width/64); dx=(dx>1)?(int)dx:1; int d=(dx>dy)?dx:dy; //利用downsampling的原理顯示檢索圖檔的縮圖 for (int y=0;y還請各位大大多多指點 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
plihui您好:
您可以參考下面連結的方式,調整寬與高看看效果會不會比較好
http://delphi.ktop.com.tw/topic.php?topic_id=32831
使用CopyRect http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34732
【發表】影像處理-內插法應用於圖片縮放 BY JerryKuo版主 順心
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
引言:plihui您好: 依您的程式碼可以看出,在x,y方向您的取樣點的比例,並沒有正確的給定。 所以導致某些情形下可能會產生過寬或過長的現象。 其實dy的值已經表示了:我們要把多少點當成一點, x,y方向皆然。 所以如單純就您的程式碼來修改,我的建議是: 將dx的部分移去,並令d=dy,應該就可以了。void TForm2::down_sampling(TImage *Source,TImage *Target) { int sx=0,sy=0; int dy=(int)(Source->Height/64); dy=(dy>1)?(int)dy:1; int dx=(int)(Source->Width/64); dx=(dx>1)?(int)dx:1; int d=(dx>dy)?dx:dy; //利用downsampling的原理顯示檢索圖檔的縮圖 for (int y=0;y void TForm2::down_sampling(TImage *Source,TImage *Target) { int sx=0,sy=0; int dy=(int)(Source->Height/64); dy=(dy>1)?(int)dy:1; d = dy; //利用downsampling的原理顯示檢索圖檔的縮圖 .....祝好! RichTop 敬上 |
plihui
初階會員 發表:88 回覆:96 積分:41 註冊:2003-07-03 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: 我今天寫了一個縮圖程式 結果發現縮圖產生了失真 比如說:一個彎月->縮圖後(很肥的彎月) 我的程式碼如下plihui你好: dx,dy是用來決定下一點x,y軸取樣的位置,當你用void TForm2::down_sampling(TImage *Source,TImage *Target) { int sx=0,sy=0; int dy=(int)(Source->Height/64); dy=(dy>1)?(int)dy:1; int dx=(int)(Source->Width/64); dx=(dx>1)?(int)dx:1; // int d=(dx>dy)?dx:dy; //利用downsampling的原理顯示檢索圖檔的縮圖 for (int y=0;y int d=(dx>dy)?dx:dy;時,則表示取樣的位置不是用dx就是dy,二者擇一 此時x軸的取樣間距d就跟y軸的取樣間距d是一樣的 影像的長寬本來就不等長,卻使用同一個取樣間距, 縮小之後的圖,是不成比例產生出來的。 舉個例 16x8的影像,分成四等分取樣,x,y軸的取樣間距分別為dx=4,dy=2 取最大值d = dx = 4,取樣間距統一變成4,則y軸取樣方式 變成二等分,取樣的方式就不成比例囉。 建議改成紅色的部分 ^^ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |