圖像處理之規則裁剪(Resize)


1 圖像裁剪

      在實際工作中,經常需要根據研究工作要求對圖像進行裁剪(Subset Image),按照實際圖像分幅裁剪的過程,可以將圖像分幅裁剪分為兩種類型:規則分幅裁剪(Rectangle Subset),不規則分幅裁剪(Pdygon Subset)。

      規則分幅裁剪:裁剪圖像的邊界范圍是一個矩形,通過左上角和右下角兩點的坐標,就可以確定圖像的裁剪位置,整個裁剪過程比較簡單。

      不規則分幅裁剪:裁剪圖像的邊界范圍是任意多邊形,無法通過左上角和右下角兩點的坐標確定裁減位置,而必須事先生成一個完整的閉合多邊形區域,可以是一個AOI多邊形,也可以是ArcInfo的一個Polygon Coverage,針對不同的情況采用不同的裁剪過程。

2 源碼實現(C語言)

      由於不規則分幅裁剪比較復雜,在常規圖像處理中並不常見,因此我們通常進行的是規則分幅裁剪,如下是利用C實現的圖像規則裁剪,源碼如下:

 1     #include "stdafx.h"    
 2     #include "cv.h"    
 3     #include "highgui.h"    
 4         
 5     int myCutOut(IplImage* src, IplImage* dst, int x, int y, int w, int h)    
 6     {    
 7         //x,y為矩形框左上角點坐標,w為寬度,h為高度    
 8         int width_src = src->widthStep;    
 9         int height_src = src->height;    
10         byte* gray_src = (byte*)src -> imageData;    
11         
12         int width_dst = dst ->widthStep;    
13         int height_dst = dst ->height;    
14         byte* gray_dst = (byte*)dst -> imageData;    
15         
16         for (int i = 0; i < height_dst; i++)    
17         {    
18             for (int j = 0; j < width_dst; j++)    
19             {    
20                 gray_dst[i * width_dst + j] = gray_src[(y + i) * width_src + x + j];    
21             }    
22         }    
23         
24         return 0;    
25     }    
26         
27     int _tmain(int argc, _TCHAR* argv[])    
28     {    
29         IplImage* Img_src = cvLoadImage("lena.bmp", -1);     
30         //目標大小為150x50    
31         IplImage* Img_dst = cvCreateImage(cvSize(150,50),IPL_DEPTH_8U,Img_src->nChannels);    
32         //起始點坐標為(250,250)    
33         myCutOut(Img_src, Img_dst, 250, 250, Img_dst -> width, Img_dst -> height);    
34         
35         cvShowImage("src", Img_src);    
36         cvShowImage("cutout", Img_dst);    
37         cvWaitKey(0);    
38         
39         return 0;    
40     }    

         仿真效果圖如下:

         輸入圖片:

        

         輸出圖片:

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM