Matlab图像剪切,超出图像区域指定颜色填充
生活随笔
收集整理的這篇文章主要介紹了
Matlab图像剪切,超出图像区域指定颜色填充
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Matlab圖像剪切,超出圖像區域指定顏色填充
【尊重原創,轉載請注明出處】http://blog.csdn.net/guyuealian/article/details/77507969 Matlab自帶圖像剪切(裁剪)函數,即imcrop函數,但該函數對于超出圖像邊界區域是停止裁剪的,即對超出圖像邊界的部分不作裁剪處理。正常情況下,imcrop函數足夠使用了。但有時,我們希望對于超出圖像邊界的區域,可以指定顏色填充,以便我們可以觀察裁剪情況。 若想在OpenCV中實現圖像剪切,對超出圖像區域指定顏色填充,可參考本人的博客:http://blog.csdn.net/guyuealian/article/details/77486096 本人實現方法如下:function destImg=ImageCropPadding(gray_img,rect,paddingValue) % ImageCropPadding函數功能說明: % 該函數可實現根據rect(x,y,w,h)剪切指定的灰度圖像,若剪切超出圖像邊界,則用paddingValue的值填充 % 輸入參數:gray_img:必須輸入灰度圖像,暫時不支持RGB圖像; % rect:指定剪切區域,類似于Matlab的imcrop函數用法 % paddingValue:填充值(1-255) %% For Example: % SrcImage=imread('images/liuyifei.jpg'); % grabImage=rgb2gray(SrcImage); % figure,imshow(grabImage),title('grabImage'); % rect=[-50,-50,500,500]; % paddingValue=1; % destImg=ImageCropPadding(SrcImage,rect,paddingValue); % figure,imshow(destImg),title('destImg'); %% x=rect(1); y=rect(2); w=rect(3); h=rect(4); destImg = im2uint8(zeros(h, w)+paddingValue/255); crop_x1 = max(1, x); crop_y1 = max(1, y); [rows,cols]=size(gray_img); crop_x2 = min(cols, x + w); crop_y2 = min(rows, y + h); roi_img = gray_img(crop_y1:crop_y2,crop_x1:crop_x2); x1 = crop_x1 - x+1; y1 = crop_y1 - y+1; x2 = crop_x2 - x+1; y2 = crop_y2 - y+1; % I(y1:y2, x1:x2 ) = I(y1:y2 , x1:x2) + roi_img; destImg(y1:y2, x1:x2 ) = roi_img; end 調用方法:SrcImage=imread('images/liuyifei.jpg'); grabImage=rgb2gray(SrcImage); figure,imshow(grabImage),title('grabImage'); rect=[-50,-50,500,500]; paddingValue=1;%黑色填充 destImg=ImageCropPadding(SrcImage,rect,paddingValue); figure,imshow(destImg),title('destImg'); 運行效果:總結
以上是生活随笔為你收集整理的Matlab图像剪切,超出图像区域指定颜色填充的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV图像剪切,超出图像区域指定颜
- 下一篇: OpenCV在图像中添加文字,画点,画直