Matlab图像剪切,超出图像区域指定颜色填充

  【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/77507969
   Matlab自带图像剪切(裁剪)函数,即imcrop函数,但该函数对于超出图像边界区域是停止裁剪的,即对超出图像边界的部分不作裁剪处理。正常情况下,imcrop函数足够使用了。但有时,我们希望对于超出图像边界的区域,可以指定颜色填充,以便我们可以观察裁剪情况。
   若想在OpenCV中实现图像剪切,对超出图像区域指定颜色填充,可参考本人的博客:http://blog.csdn.net/guyuealian/article/details/77486096
   本人实现方法如下
   调用方法:

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');
   运行效果:
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

Matlab图像剪切,超出图像区域指定颜色填充相关推荐

  1. OpenCV图像剪切,超出图像区域指定颜色填充

    OpenCV图像剪切,超出图像区域指定颜色填充 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/77486096 在Open ...

  2. 解决echarts饼图显示百分比,和显示内容字体及大小,如何给eCharts饼图区域指定颜色

    解决echarts饼图显示百分比,和显示内容字体及大小 // 基于准备好的dom,初始化echarts实例         var pieEchart = echarts.init(document. ...

  3. Visio中图进行任意区域进行颜色填充

    Visio中图进行任意区域进行颜色填充: 1.首先打开文件--高级--常规--勾选以开发人员模式运行--确定. 2.选中需要操作的图形--开发工具选型--操作--拆分. 3.对图形的任意位置进行颜色填 ...

  4. opencv进阶学习笔记2:numpy操作图像,色彩空间,查找指定颜色范围,通道分离与合并

    基础部分传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) Numpy操作图像 1.遍历图像每一 ...

  5. Keras基础自学二十(图像旋转,图像剪切,图像移动)

    from keras.datasets import mnist from keras.preprocessing.image import ImageDataGenerator from matpl ...

  6. MATLAB轻松实现三维图像自动旋转、颜色渐变、自动保存为GIF

    1. 3D图像自动旋转 camorbit函数 官方文档中给出了详细说明: 示例: %旋转功能核心语句: axis vis3d %3维坐标系 surf(peaks) for i = 1:36camorb ...

  7. OpenCV图像剪切的扩展和高级用法:任意裁剪,边界扩充

    OpenCV图像剪切的扩展和高级用法:任意裁剪,边界扩充 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/78113325 ...

  8. 区域颜色填充-四连通种子填充算法

    首先确定封闭区域内的一个像素,称为种子点.将种子点率先引入栈中,并重复以下3个步骤:1.栈顶像素出栈:2.将出栈的像素填充上目标颜色:3.根据左上右下的顺序检查周围的像素,如果不为边缘且还未入栈则将该 ...

  9. 不规则图形颜色填充(Python)

    以正弦曲线图形为例: import matplotlib.pyplot as plt import numpy as np# 设置图形坐标参数 x = np.linspace(0, 2 * np.pi ...

最新文章

  1. java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题
  2. 【机器学习-学习笔记】单/多变量线性回归、多项式回归、逻辑回归、过拟合、正则化
  3. Java架构-高并发的解决实战总结方案
  4. Window系统下搭建GIT本地服务器详细教程
  5. 微信小程序微商城(十):用户收货地址管理
  6. 陈纪修老师《数学分析》 第10章:函数项级数 笔记
  7. 华为数通HCIA笔记——路由基础
  8. 中国电信计算机类校园招聘笔试题目,中国电信集团2019校园招聘笔试真题(计算机技术类-A卷)(精选).doc...
  9. 用OneDrive生成音乐外链和图片外链
  10. OpenGL的3D场景模型大作业
  11. exe制作成安装包,Inno Setup软件使用教程
  12. 【机器学习之随机森林】
  13. 编程金融小白学 股票期权 lv.5 希腊字母 Delta
  14. 中文分词jieba学习笔记
  15. Linux背后的大脑-传奇人物Linus
  16. 计算机网络云怎么连接网络,华为云电脑如何连网 华为云电脑使用方法介绍
  17. [提高工作开发效率]程序员常用的工具软件推荐
  18. 关于WPS Office安全漏洞情况的通报
  19. 管理信息化涉及的领域
  20. 安卓ios文件上传.net 服务器,Windows 和 iOS 13无缝传输文件最快的方案

热门文章

  1. 浏览器常见bug及解决办法
  2. CSS文件可维护、可读性提高指南第2/2页
  3. 7.串口操作之API篇 GetCommMask SetCommMask WaitCommEvent
  4. Android闹钟 AlarmManager的使用
  5. Api文档生成工具与Api文档的传播(pdf)
  6. 何谓成功的软件架构设计
  7. SQL Server 的通用分页显示存储过程
  8. 杨元庆:乐Pad更适合中国消费者
  9. 走近人脸识别:时代趋势下的弄潮儿
  10. Vue父子组件之间的传值