




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、09級計算機 侯世安2010.11第34屆SIGGRAPH 2007數字圖形學年會上,以色列的兩位教授Shai Avidan和Ariel Shamir,展示了一種新的縮放裁剪圖像方法,他們稱之為這項技術能計算出圖像上的關鍵部分和不重要區域,從而使得隨意改變一個圖像的高寬比(aspect ratio)但不會讓內容變得扭曲成為可能。簡單的說,利用這個技術我們可以在縮放時固定圖片中特定區域的大小,或者可以在縮小時讓特定的區塊被周圍圖像縫合消除,并且因為“seam carving”的縫補算法,你可以讓圖片縮放后仍然維持整體的完整性。舉實際應用的例子來說,利用Seam Carving我們可以將原本窄鏡頭
2、的夕陽照片,修改成廣角鏡頭的夕照,可是中心主題的太陽不會因為圖片拉寬而變形;或者我們可以將原本中間隔著距離的兩人合照,修改成靠在一起的合照,但是圖片也不會因為修改變形。這是一個很有趣,也讓人覺得很厲害的技術,完全不同于一般的圖片工具。裁剪圖片,保留重要區域拉伸圖片,保留重要區域形狀無縫去除圖片中的一個區域先討論圖片剪裁時的情況一、分析圖像中各區域的“重要程度”(能量函數)二、不斷尋找能量最小的路徑(Seam),將它Carve掉Seam Carving采用的能量函數:圖像的梯度信息e(I) = abs(I / x) + abs(I / y)即,圖片中色彩反差大的地方,很可能是圖片重點區域的邊緣。
3、路徑:貫穿左右(上下)每向右一格,向上向下最多偏移一個像素(是否可以改進?)n2時間的動態規劃的算法M(i, j) = e(i, j)+min(M(i1, j1),M(i1, j),M(i1, j+1)找到Seam后將它去掉,然后圖片左右(上下)兩部分合并增加保護區域和刪除區域(遮罩Mask)讓用戶可以手動指定哪部分區域是重要的或不重要的。保護區域:能量無限大刪除區域:能量減去一個固定值(是否是最好的方法?)梯度函數:void BrightGradient(const IplImage *src,IplImage *gra)for (int h=0;hheight-1;h+)for (int
4、w=0;wwidth-1;w+)G(h,w)=(abs(B(0,0)-B(0,1)+abs(B(0,0)-B(1,0)/3;算法核心(動規):for(i=1;iwidth;i+)for(j=0;jimageData+(a)-widthStep*(y)(x)/提取32S圖像a的點#define Ps(a,x,y) (int*)(a)-imageData+(a)-widthStep*(y)(x)/提取8S圖像a的點#define Pc(a,x,y) (char*)(a)-imageData+(a)-widthStep*(y)(x)/提取8U3C圖像a的點#define Pr(a,x,y,c) (u
5、char*)(a)-imageData+(a)-widthStep*(y)(x)*3+(c)Windows和用戶交互的方式是Win32程序的用戶界面(UI)部分工作方式:當有很多消息同時產生時,沒有被處理的消息會放到消息隊列中。每個與窗口相關的線程維護一個消息隊列。int WINAPI WinMain((省略))(省略)(建立窗口,等等)MSG msg;while (GetMessage(&msg, NULL, 0, 0)TranslateMessage(&msg);DispatchMessage(&msg);return msg.wParam;#include “hi
6、ghgui.h”本質上和Win32編程是一樣的,底層還是調用的Win32 API接口。不過確實讓編程變得容易了不少。cvSetMouseCallback( “Working Place”, on_mouse, 0 );/將鼠標消息關聯到用戶自己定義的on_mouse()函數void on_mouse( int event, int x, int y, int flags, void* ) if( !dis ) return; if( event = CV_EVENT_LBUTTONUP | !(flags & CV_EVENT_FLAG_LBUTTON ) ) prev_pt = cv
7、Point(-1,-1);/鼠標左鍵按下則記錄當前鼠標坐標 else if( event = CV_EVENT_LBUTTONDOWN ) prev_pt = cvPoint(x,y); else if( event = CV_EVENT_MOUSEMOVE & (flags & CV_EVENT_FLAG_LBUTTON) )/鼠標坐標滑動時不斷調用cvLine函數畫直線 CvPoint pt = cvPoint(x,y); if( prev_pt.x 0 ) prev_pt = pt;/在圖像 mask 和 dis 中畫出直線并改變其對應的像素值 cvLine( mask, prev_pt, pt, cvScalarAll(0 xff), 25, 8, 0 ); cvLine( dis, prev_pt, pt, cvScalarAll(0 xff), 25, 8, 0 ); prev_pt = pt; cvShowImage( Working Place, dis );。(省略右鍵部分代碼)對畫面重點的擺放有要求高度壓縮下圖像易變形,容易出現45度傾斜的邊緣用Seam Carving實現圖片的拉伸。可以做鍵盤響應逐步拉伸,也可以通過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業廢水處理技術與工程實踐
- 工業污染治理的技術手段與實踐
- 工業建筑設計風格與案例分析
- 工業廢水處理現狀及發展趨勢分析
- 工業污染防治與公眾參與
- 工業自動化中的仿真技術探索
- 工業物聯網的發展與應用案例
- 工業節能減排與綠色制造
- 工業遺址改造與再利用
- 工作中如何提高專注力
- 甘肅電投筆試題
- 《車用動力電池液冷板技術條件》
- 2025版國家開放大學法學本科《知識產權法》期末紙質考試第二大題多項選擇題題庫
- 中醫藥膳學知識學習考試題庫500題(含答案)
- 《九型人格培訓》課件
- 中國文化概觀-終結性考核-國開(SC)-參考資料
- 五年級下冊語文作文范文1-8單元
- 工業廠房電氣工程施工方案
- 人教版九年級全一冊英語期末學情評估測試卷(含答案)
- 檢驗科生物安全手冊
- 2024年海南省中考數學試題卷(含答案解析)
評論
0/150
提交評論