第一页在线,国产精品久久网站,日日碰狠狠躁久久躁96avv

天天干一干-日本一区二区三区免费播放视频站-亚洲人禽杂交av片久久-国产日韩网站-奇米网888-免费一级全黄少妇性色生活片-一二三区视频在线-国产精品无码av片在线观看播-国产无人区码熟妇毛片多-av中文在线观看-国产农村乱人伦精品视频-正在播放日韩-黑人巨大videos精品-91久久一区-亚洲最大在线视频-成人女人黄网站免费视频-极品在线视频-春色校园激情综合在线-99久视频-精品国产一区在线


                獲得積分
                資料庫會員登錄
                搜索: [高級搜索]
                下載首頁 | 資源分類 | 下載排行
                您的位置: 首頁 > PACS/RIS > PACS RIS 實施及方案相關(guān)
                 
                分類導(dǎo)航
                下載排行
                最新資源
                PACS中幾個圖像縮放算法的比較
                資源大小:12.02 KB 資源類型:文檔
                下載積分: 1
                更多
                -->
                下載統(tǒng)計:總下載:0,本月下載:0,本周下載:0,今日下載:0
                發(fā)表評論 錯誤報告 加入收藏夾
                資源介紹
                幾個圖像縮放算法的比較
                   
                前段時間由于項目的需求,需要實現(xiàn)圖像的縮放功能,期間查找了不少關(guān)于圖像縮放算法的資料,現(xiàn)把自己的心得整理一下。
                由于研究生期間沒有選修過圖像處理方面的課程,所以對圖像縮放的原理可謂一竅不通,當(dāng)時開始編寫代碼的時候簡直就是一頭霧水。而且網(wǎng)上雖然介紹圖像處理的代碼很多,但涉及圖像縮放的代碼卻很少,因為很多軟件都直接使用了windows的GDI函數(shù)庫的API函數(shù):StretchBlt,或者VCL中TCanvas類的StretchDraw。無奈這兩個函數(shù)都是直接對BMP圖像進(jìn)行縮放,而且StretchBlt是在CDC里面調(diào)用的,結(jié)果只是在顯示的時候?qū)D像進(jìn)行縮放,不能夠進(jìn)行縮放的存儲。那些天在GDI和GDIPLUS摸索了半天,都找不到合適的函數(shù),某天卻迸出個想法來:圖像放大不就是把每個象素點再多弄幾個出來,而縮小不就是去掉里面一些象素點。所以就按照自己的想法寫了一個比較粗糙的放大函數(shù):
                   BYTE *src,*dst,*ptr,*buffer,*next;
                   for(int i=0,n=0; i < this->Height(); i++,n=n+rate)
                   {   
                    src = this->GetLinePtr(i);
                    dst = tempdib->GetLinePtr(n);
                    ptr = dst;
                    for(int j=0; j < this->Width(); j++,ptr=ptr+3*rate)
                    {
                     memcpy(ptr,src+j*3,3);
                     for(int m=1;m        memcpy(ptr+m*3,ptr,3);
                    }
                    for(int m=n+1;m     {
                     
                     buffer = dst;
                     next = tempdib->GetLinePtr(m);
                     ptr = next;
                     memcpy(ptr,buffer,dstwidth*3);
                     
                    }
                   }
                這段代碼的效果比較粗糙,但處理的辦法比較有意思。首先是讀取一行的圖像數(shù)據(jù),然后在每一行循環(huán)讀取一個象素的RGB值并復(fù)制到新圖像的內(nèi)存空間,然后根據(jù)放大的比例再作一次循環(huán),把這個RGB值按照比例復(fù)制進(jìn)內(nèi)存空間。當(dāng)進(jìn)行完一行的處理后,在新圖像的內(nèi)存空間進(jìn)行一次循環(huán)處理,把這行數(shù)據(jù)按照比例復(fù)制給下面幾行。這樣就通過象素點的復(fù)制實現(xiàn)了圖片的放大。不過放大的效果不是特別好,圖像列方向上會出現(xiàn)很多的毛刺,放大4倍的話圖像就很模糊了。
                所以還是重新去查找資料,結(jié)果在網(wǎng)上搜到一篇不錯的文章——用線性插值算法實現(xiàn)圖像縮放。看了文章,才發(fā)現(xiàn)我原先的辦法還真不是一般的原始,不過思路還跟GDI里面的StretchBlt差不多。StretchBlt采用的方法在圖像處理領(lǐng)域稱為最近鄰域法,其基本原理就是先取出原圖的相鄰四個點,然后把新位置的點跟這四個點的位置做比較,把最近一個點的RGB值賦給新位置的點。所以在放大的時候,幾乎就是像我那樣把前一個點的象素賦給新位置的點。這樣處理的結(jié)果就是導(dǎo)致圖像不夠平滑,因為點與點之間是一個過渡的過程,不是簡單的復(fù)制,稍微好點的辦法就是把新點附近幾個點的顏色值取平均再賦給這個點。這種方法在數(shù)值計算方法叫做線性插值。但那篇文章提供了一個更好的方法,叫做二維線性插值,其原理也是對附近的點取平均,但它對各個點的顏色值加上不同的權(quán)數(shù),這個權(quán)數(shù)就是各個點距離這個點的位置。其計算方法如下:
                P = n*b*PA + n * ( 1 – b )*PB + ( 1 – n ) * b * PC + ( 1 – n ) * ( 1 – b ) * PD

                    其中:n為v(映射后相應(yīng)點在源圖像中的Y軸坐標(biāo),一般不是整數(shù))下面最接
                下載地址
                 下載地址1
                按字母檢索

                下載須知:
                大部份資源無需注冊即可下載
                需要積分的資源要在會員中心注冊會員并用 積分體系中提示的方法賺取積分才能下載。

                免責(zé)聲明:
                所有資源只能用于參考學(xué)習(xí),不能用于任何商業(yè)用途,否則后果自負(fù)!