- 對蕾娜的品頭論足
- 實作參考 與 連結
- 可省略的個人雜談
對蕾娜的品頭論足
以下lena縮放解析度為5000 * 3000,擷取眼睛周圍512 * 512區域當個創世神的Nearest-neighbor interpolation
朦朧美的Bilinear interpolation
低速高質的Bicubic interpolation
以中心做旋轉 - 在後仰的蕾娜
實作參考 與 連結
程式實作是參考大陸博客,博主將OpenCV源碼,從平行化改成跌代,方便理解演算法。
我找了很多資料,與實際觀看OpenCV源碼,來理解程式與演算法。
在原程式碼旁,加入理解過的註釋,以下列出篩選過的重要參考:
程式碼實作參考
如何觀看opencv源碼?
演算法理解 (概念 / 公式)
interpolation概念
- 各種內插法 - 維基百科
- 三種內插法概念與數學矩陣 A Review of Some Image Pixel Interpolation Algorithms
- Bilinear與Bicubuc運算原理圖 Understanding image-interpolation techniques
- Bilinear與Bicubuc鄰近權重圖 DIGITAL IMAGE INTERPOLATION
Nearest
- 直接看源碼就懂
- 有個疑問是: 取整時,用cvFloor還是cvRound,需不需要+0.5? (四捨五入)
- 目前猜測是都可以(無條件捨去 或者 四捨五入),看個人取向
Bilinear
- 双线性插值(Bilinear Interpolation)
- 公式參考(Unit Square的部分) - 維基百科
Bicubic (Bicubic convolution algorithm)
- 關鍵公式參考(Bicubic convolution algorithm的部分) - 維基百科
- 图像放大并进行BiCubic插值
- 2.3 立方內插法的章節 論文參考
- 公式推導與曲線圖 Cubic interpolation
- 額外參考
- 三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)
- 十分詳細的數學推導過程與實作
- Catmull-Rom Splines
Rotate
- 旋轉公式參考 Affine Transformations
補充資料: 關於Mat Class 與 指針操作
- OpenCV學習心得(11) -- Mat類型與Arraya
- OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
- OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年
- OpenCV学习笔记(四十三)——存取像素值操作汇总core
- OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core
可省略的個人雜談
Bilinear與Bicubic,對蕾娜來說,大概要縮放到5000 * 3000以上,
才會在交界處,明顯看出鋸齒多寡的差異。
但是,如果頻繁地切換兩張圖片 來 對比,則能明顯看出一邊模糊一邊清晰。
Bicubic迭代十分耗時,縮放到5000 * 3000時,耗了將近1分多鐘。
才會在交界處,明顯看出鋸齒多寡的差異。
但是,如果頻繁地切換兩張圖片 來 對比,則能明顯看出一邊模糊一邊清晰。
Bicubic迭代十分耗時,縮放到5000 * 3000時,耗了將近1分多鐘。
熟悉演算法後,大概會嘗試寫成平行化,來加速運算。
好奇的小問題,蕾娜有正面圖嗎 ... ? 我看了覺得脖子好痠
沒有留言:
張貼留言