atitit.thumb產生高品質縮圖 php .net c++ java,atitit.thumb.net
atitit.java thumb產生高品質縮圖 php .net c++
1. 映像縮放(image scaling)---平滑度(smoothness)和清晰度(sharpness) 1
2. 圖片縮放原理與opencv的處理方法 1
3. 最近鄰插值(簡單,不推薦) 2
4. 雙線性插值 3
5. 三次卷積插值 3
6. java-image-scaling是一個開源高品質的映像縮圖類 4
7. Thumbnailator 百度8w 4
8. javashop中Jmagick縮圖產生組件及文檔(jni) 5
8.1.1. javashop 5
9. atiThumb 5
10. 參考 6
1. 映像縮放(image scaling)---平滑度(smoothness)和清晰度(sharpness)
是指對數位影像的大小進行調整的過程。映像縮放是一種非平凡的過程,需要在處理效率以及結果的平滑度(smoothness)和清晰度(sharpness)上做一個權衡。
當一個映像的大小增加之後,組成映像的像素的可見度將會變得更高,從而使得映像表現得“軟”。
相反地,縮小一個映像將會增強它的平滑度和清晰度。
放大用插值演算法,縮小用中值演算法
失真較小但是演算法複雜,如雙立方插值;有的運算量小但得到的映像失真較大,如最近鄰插值和雙線性插值。
進行縮小時候,映像縮小的比例越大,像素躍越現象越明顯,顯然會產生高頻幹擾。因此要使得映像不失真必須採用低通濾波的方式將這些高頻幹擾去除。實際上我們處理的時候是將做反變換和濾波同時進行
作者:: 老哇的爪子 Attilax 艾龍, EMAIL:1466519819@qq.com
轉載請註明來源: http://blog.csdn.net/attilax
2. 圖片縮放原理與opencv的處理方法
OPENCV提供的cvResize函數原型。
/****************************************************************************************************/
映像大小變換
void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );
src
輸入映像.
dst
輸出映像.
interpolation
插值方法:
CV_INTER_NN - 最近鄰插值,
CV_INTER_LINEAR - 雙線性插值 (預設使用)
CV_INTER_AREA - 使用象素關係重採樣。當映像縮小時候,該方法可以避免波紋出現。當映像放大時,類似於 CV_INTER_NN 方法..
CV_INTER_CUBIC - 立方插值.
函數 cvResize 將映像 src 改變尺寸得到與 dst 同樣大小。若設定 ROI,函數將按常規支援 ROI.
/****************************************************************************************************/
3. 最近鄰插值(簡單,不推薦)
最簡單的映像縮放演算法就是最近鄰插值。顧名思義,就是將靶心圖表像各點的像素值設為源映像中與其最近的點。假設源映像的寬度和高度分別為w0和h0, 縮放後的靶心圖表像的寬度和高度分別為w1和h1, 那
要將該映像放大兩倍,可以有很多種演算法,最簡單的方法為鄰域插值,即將每
圖1 原映像
一個原像素原封不動地複製映射到擴充後對應四個像素中:
這種方法在放大映像的同時保留了所有的原映像的所有資訊,但是會產生鋸齒現象。
近鄰取樣插值縮放簡單、速度快,但很多時候縮放出的圖片品質比較差(特別是對於人物、景色等),
圖片的縮放有比較明顯的鋸齒;使用二次或更高次插值有利於改善縮放效果;
4. 雙線性插值
線性插值,就是如果放大的時候要在a1和a2之間插一個(或幾個)新值,那麼a=a1*r+a2*(1-r) 0<r<1。
所謂雙線性,就是在x方向和y方向都做線性插值。
立方就是把這個公式換成3次多項式,會得到更平滑的效果。
雙線性插值作為OpenCV中預設使用的映像縮放演算法,其效果和速度都是不錯的。並且效果也比較穩定,計算複雜度並不算太高
“映像的雙線性插值放大演算法中,靶心圖表像中新創造的象素值,是由源映像位置在它附近的2*2地區4個鄰近象素的值通過加權平均計算得出的。雙線性插補值演算法放大後的映像品質較高,不會出現像素值不連續的的情況。然而次演算法具有低通濾波器的性質,使高頻分量受損,所以可能會使映像輪廓在一定程度上變得模糊。”
二次線性插值縮放出的圖片很多時候讓人感覺變得模糊(術語叫低通濾波),特別是在放大
的時候;使用三次卷積插值來改善插值結果;三次卷積插值考慮映射點周圍16個點(4x4)的顏色來
計算最終的混合顏色,;
雙線性插值的效果對於放大的映像而言較領域插值來得平滑,但是卻使得映像變得模糊而且仍然會有一部分鋸齒現象。
但是縮小的話用雙線性插值即慢,效果又差(效果和另近點插值應該是一樣的。)
5. 三次卷積插值
雙立方插值更好比雙線性插值更好。
對於低解析度或顏色很少的(通常是從2到256色)映像的放大問題,效果最好的演算法是hq2x演算法或類似的縮放演算法。這些演算法將會產生銳邊並保留大量的細節,其效果如下:
對於照片(以及有許多色階的光柵映像)的縮放演算法可以參看一種被稱為超採樣(supersampling)的反鋸齒演算法。[1] 如果是
如果是放大演算法。。。只是插值還不夠,還要反鋸齒
可以試試“三次卷積法”,不過比雙線性插值還要慢,效果當然好的多了。
雙線性插值只是參考了周圍4個點,而三次卷積法參考的是周圍16個點,運算過程中也沒有低通效果,如果不是很在乎速度的情況下可以考慮。
如果
6. java-image-scaling是一個開源高品質的映像縮圖類
用imagescaling 產生縮圖 Java image scaling是一個高品質圖片縮放的開源項目
百度為您找到相關結果約195個
ava-image-scaling 的效果好像也一樣。。詳見::java 縮圖 - 推酷.htm
7. Thumbnailator 百度8w
後還是thubnalatyor
不過這個
Thumbnails.of(dir+"\\all_r1_c2.jpg").scale(0.70f).outputQuality(1f)
.toFile(dir+"\\all_r1_c2_min3.jpg");
不過這個效果好像也有問題。。
原圖640寬度。。縮小後臉蛋光滑。。而個540三,走不行蘭...
8. javashop中Jmagick縮圖產生組件及文檔(jni)
(2013-05-21 09:05:39)
轉載▼
標籤: 8.1.1. href="http://search.sina.com.cn/?c=blog&q=javashop&by=tag" javashop |
分類: 技術達人 |
Javashop預設使用javax.imageio.ImageIO 產生圖片縮圖,您還可以選用ImageMagick 組件來產生縮圖
點擊下面串連下載組件及文檔 ImageMagick組件及文檔 一、 安裝ImageMagick- |
這個馬試達guo.
9. atiThumb
需要使用插值演算法。下載下面兩個類:javashop的倆個類。。 |
林吧,還是使用了atithumb..suprise,....這個效果的好ا..
prj。wechatAdm4prpt
JavaImageIOCreator creator = new JavaImageIOCreator(dir);
creator.crteteThumbnails(dir, 0.6f);
private void crteteThumbnail(String f1, String f2,
float scallPercet) {
10. photoshop使用的縮放演算法以及調用ps來進行縮放
ps的演算法集中綜合幾種進階演算法了,效果很好,不開源的。。個人建議使用gui介面調用ps的功能來縮放,效果超好。。如果有api介面那就最好了。回複
11. 參考
java使用Thumbnailator操作圖片 - kunkun378263的專欄 - 部落格頻道 - CSDN.NET.htm
使Javashop產生高清縮圖 - 技術交流區 - JavaShop網上商城支援人員論壇 - Powered by Discuz!.htm
映像縮放演算法及速度最佳化 - 鈺的日誌 - 網易部落格.htm
映像縮放_百度百科.htm
當今主流數位影像縮放技術的演算法_Sunny_新浪部落格.htm