[問題] 影像縮放 鄰點法

看板C_and_CPP作者 (老叭噗)時間12年前 (2012/02/21 13:30), 編輯推噓1(1012)
留言13則, 3人參與, 最新討論串1/1
不好意思 我是使用C/C++新手 最近正在學影像處理 而目前學習到Nearest Neighbor的影像縮放法 for(j=0; j<nrstImg.height(); j++){ for(i=0; i<nrstImg.width(); i++) { x = i/scale + 0.5; y = j/scale + 0.5; if(x >= srcImg.width() && y >= srcImg.height()){ x--; y--; }else if(x >= srcImg.width() && y < srcImg.height()){ x--; }else if(x < srcImg.width() && y >= srcImg.height()){ y--; } tmpPix = srcImg.pixel(x, y); nrstImg.setPixel(i, j, qRgb(qRed(tmpPix), qGreen(tmpPix), qBlue(tmpPix))); } } 程式碼如上 有點看不太懂 為什麼 x >= srcImg.width() && y < srcImg.height()){ x--} 這段要做x--的動作 Scale是縮放參數 不是取鄰近點嗎 那把它-1的動作用意是什麼...這邊我有點不通 想請版上的大大們 給我一些指點..謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.41.10

02/21 13:41, , 1F
我認為那個if是判斷邊界,你如果x或y超出邊界
02/21 13:41, 1F

02/21 13:41, , 2F
就要扣回來...
02/21 13:41, 2F

02/21 13:43, , 3F
你那個會超過是因為上面有加上0.5的關係
02/21 13:43, 3F

02/21 16:19, , 4F
感謝D大@@" 我後來看很久好像勉強看懂了= ="
02/21 16:19, 4F

02/21 16:33, , 5F
要弄懂方法先去看他演算法,在看程式比較好
02/21 16:33, 5F

02/21 17:13, , 6F
可是我看演算法會懂 但是不知道怎麼寫成程式...
02/21 17:13, 6F

02/21 17:14, , 7F
對於程式概念沒有很深刻的感覺...
02/21 17:14, 7F

02/21 18:28, , 8F
你所需要知道的就是要先設想例外狀況,這些在演算法
02/21 18:28, 8F

02/21 18:28, , 9F
中幾乎都不會提到
02/21 18:28, 9F

02/21 22:57, , 10F
影像處理會碰到的例外大部分就那幾個 熟了就好了
02/21 22:57, 10F

02/21 23:00, , 11F
例外是什麼意思呢@@? 可以稍為提一下嗎..?謝謝
02/21 23:00, 11F

02/21 23:06, , 12F
就像pixel超出邊界,或是計算後的座標是浮點數該怎辦
02/21 23:06, 12F

02/21 23:24, , 13F
就是你沒想到會發生的事卻發生了
02/21 23:24, 13F
文章代碼(AID): #1FGolVhq (C_and_CPP)