图像处理之裁剪(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     }    

仿真效果图如下:

输入图片:

输出图片:

原文地址:https://www.cnblogs.com/qiqibaby/p/8626516.html

时间: 2024-08-30 15:02:42

图像处理之裁剪(Resize)的相关文章

如何用TensorFlow图像处理函数裁剪图像?

当给定大量不同质量的训练数据时,CNN往往能够很好地工作. –图像能够通过可视化的方式,传达复杂场景所蕴含的某种目标主题. –在Stanford Dogs数据集中,重要的是图像能够以可视化的方式,突出图片中狗的重要性. –一幅狗位于画面中心的图像,会被认为比狗作为背景的图像更有价值. 并非所有数据集都拥有最有价值的图像.下面所示的两幅图像,按照假设,该数据集本应突出不同的狗的品种 左图突出的是一条典型的墨西哥无毛犬的重要属性,而右图是两个参加聚会的人,在逗一条墨西哥无毛犬.右图中充斥了大量的无关

iOS图像处理之裁剪

两行代码而已 CGRect cutRect = CGRectMake(originImage.size.width/2, originImage.size.height/2, originImage.size.width/2, originImage.size.height/2); UIImage *cutImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect([originImage CGImage], cutRect)];

【分享】性能比肩美拍秒拍的Android视频录制编辑特效解决方案【1】

前言 本人接触Android的时间有限,如果您有更好的解决方案,欢迎吐槽. 众所周知,Android平台开发分为Java层和C++层,即Android SDK和Android NDK.常规产品功能只需要涉及到Java层即可,除非特殊需要是不需要引入NDK的.但如果是进行音视频开发呢?Android系统Java层API对音视频的支持在MediaCodec之前,还停留在非常抽象API的级别(即只提供简单的参数和方法,可以控制的行为少,得不到中间数据,不能进行复杂功能的开发,更谈不上扩展).而在Med

性能比肩美拍秒拍的Android视频录制编辑特效解决方案

前言 众所周知,Android平台开发分为Java层和C++层,即Android SDK和Android NDK.常规产品功能只需要涉及到Java层即可,除非特殊需要是不需要引入NDK的.但如果是进行音视频开发呢? Android系统Java层API对音视频的支持在MediaCodec之前,还停留在非常抽象API的级别(即只提供简单的参数和方法,可以控制的行为少,得不到中间数据,不能进行复杂功能的开发,更谈不上扩展).而在MediaCodec在推出之后,也未能彻底解决问题,原因有这些:1.Med

数字图像处理之python篇二:图像通道\几何变换\裁剪

一.图像通道 1.彩色图像转灰度图 from PIL import Image import matplotlib.pyplot as plt img=Image.open('d:/ex.jpg') gray=img.convert('L') plt.figure("beauty") plt.imshow(gray,cmap='gray') plt.axis('off') plt.show() 使用函数convert()来进行转换,它是图像实例对象的一个方法,接受一个 mode 参数,

简单二次封装的Golang图像处理库:图片裁剪

简单二次封装的Golang图像处理库:图片裁剪 一.功能 Go语言下的官方图像处理库 简单封装后对jpg和png图像进行缩放/裁剪的库 二.使用说明 1.首先下载 go get -v -u github.com/hunterhug/go_image 2.主要函数 按照宽度进行等比例缩放,第一参数是图像文件,第二个参数是缩放后的保存文件路径 err := ScaleF2F(filename, savepath, width) 按照宽度和高度进行等比例缩放,第一参数是图像文件,第二个参数是缩放后的保

Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理

前言 java开发中经常遇到对图片的处理,JDK中也提供了对应的工具类,不过处理起来很麻烦,Thumbnailator是一个优秀的图片处理的开源Java类库,处理效果远比Java API的好,从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量.还支持对一个目录的所有图片进行批量处理操作,下边就和大家分享一下java中用Thumbnailator做图片各种处理的方法(相关jar包可在最

图像处理-裁剪具有透明背景的png

我遇到了需要裁剪具有透明背景的png的问题,用https://www.yasuotu.com/editor这个网站解决了问题. 原文地址:https://www.cnblogs.com/luoyihao/p/11447392.html

共有31款PHP 图形/图像处理开源软件(转)

详情点击:http://www.oschina.net/project/lang/22/php?tag=141&os=0&sort=view PHP 图像处理库 Grafika Grafika 是一个 PHP 的图像处理库.可用于改变图像大小.剪切.比较,以及添加水印等操作.同时可以创建一些文本图片.几何图形并应用一些过滤器.基于 Imagick 和 GD 构建. 特征 智能裁剪 图像比较 感知哈希 高级图像处理过滤器 贝塞尔曲线 示例代码: ...更多Grafika信息 最近更新:Gra