Open CV缩放图像
缩放图像是图像处理中需要经常使用的操作。太小的图像在图像识别中不能很好的处理,需要将其放大,太大的图像不方便储存,需要将其缩小,下面记录OpenCV图片缩放方法。
缩放函数
void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
参数说明:
src – 原图像
dst – 输出图像
dsize – 输出图像大小,如果为0 则通过此公式计算得到:Size(round(fx*src.cols), round(fy*src.rows)),dsize和fx,fy不能全为空
fx – x方向缩放比例
fy – y方向缩放比例
interpolation – 插值方法:
– INTER_NEAREST - a nearest-neighbor interpolation
– INTER_LINEAR - a bilinear interpolation (used by default)
– INTER_AREA - resampling using pixel area relation. It may be a preferred method for
image decimation, as it gives moire’-free results. But when the image is zoomed, it is
similar to the INTER_NEAREST method.
– INTER_CUBIC - a bicubic interpolation over 4x4 pixel neighborhood
– INTER_LANCZOS4 - a Lanczos interpolation over 8x8 pixel neighborhood
使用示例(放大图像)
下面代码演示使用不同的缩放方法放大同一张图片的结果。
int main( int argc, char** argv )
{
Mat matSrc = imread("oripic.jpg",1);
Mat matDst_INTER_NEAREST,matDst_INTER_LINEAR,matDst_INTER_AREA,matDst_INTER_CUBIC,matDst_INTER_LANCZOS4;
//原图使用不同的方法放大5倍后的结果
resize(matSrc,matDst_INTER_NEAREST,Size(0,0),5,5,INTER_NEAREST);
resize(matSrc,matDst_INTER_LINEAR,Size(0,0),5,5,INTER_LINEAR);
resize(matSrc,matDst_INTER_AREA,Size(0,0),5,5,INTER_AREA);
resize(matSrc,matDst_INTER_CUBIC,Size(0,0),5,5,INTER_CUBIC);
resize(matSrc,matDst_INTER_LANCZOS4,Size(0,0),5,5,INTER_LANCZOS4);
namedWindow("OriPicture");
imshow("OriPicture",matSrc);
namedWindow("INTER_NEAREST");
imshow("INTER_NEAREST",matDst_INTER_NEAREST);
namedWindow("INTER_LINEAR");
imshow("INTER_LINEAR",matDst_INTER_LINEAR);
namedWindow("INTER_AREA");
imshow("INTER_AREA",matDst_INTER_AREA);
namedWindow("INTER_CUBIC");
imshow("INTER_CUBIC",matDst_INTER_CUBIC);
namedWindow("INTER_LANCZOS4");
imshow("INTER_LANCZOS4",matDst_INTER_LANCZOS4);
waitKey(0);
}
放大结果:
使用示例(缩小图像)
下面代码将指定图片缩小为当前的0.3
int main( int argc, char** argv )
{
Mat matSrc = imread("oripic1.png",1);
Mat matDst_INTER_NEAREST,matDst_INTER_LINEAR,matDst_INTER_AREA,matDst_INTER_CUBIC,matDst_INTER_LANCZOS4;
//原图使用不同的方法放大5倍后的结果
resize(matSrc,matDst_INTER_NEAREST,Size(0,0),0.3,0.3,INTER_NEAREST);
resize(matSrc,matDst_INTER_LINEAR,Size(0,0),0.3,0.3,INTER_LINEAR);
resize(matSrc,matDst_INTER_AREA,Size(0,0),0.3,0.3,INTER_AREA);
resize(matSrc,matDst_INTER_CUBIC,Size(0,0),0.3,0.3,INTER_CUBIC);
resize(matSrc,matDst_INTER_LANCZOS4,Size(0,0),0.3,0.3,INTER_LANCZOS4);
namedWindow("OriPicture",WINDOW_AUTOSIZE);
imshow("OriPicture",matSrc);
namedWindow("INTER_NEAREST",WINDOW_AUTOSIZE);
imshow("INTER_NEAREST",matDst_INTER_NEAREST);
namedWindow("INTER_LINEAR");
imshow("INTER_LINEAR",matDst_INTER_LINEAR);
namedWindow("INTER_AREA");
imshow("INTER_AREA",matDst_INTER_AREA);
namedWindow("INTER_CUBIC");
imshow("INTER_CUBIC",matDst_INTER_CUBIC);
namedWindow("INTER_LANCZOS4");
imshow("INTER_LANCZOS4",matDst_INTER_LANCZOS4);
waitKey(0);
}缩小效果(方法名没有在图像中显示,可以自行运行代码查看效果)
Open CV缩放图像的更多相关文章
- 本图片处理类功能非常之强大可以实现几乎所有WEB开发中对图像的处理功能都集成了,包括有缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等功能
import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- AForge,Emgu.CV抓拍图像大小
原文:AForge,Emgu.CV抓拍图像大小 2017年,忙忙碌碌地过去了,象往年一样,依然没有时间上CSDN,博客园. 这一年是打工以来最辛苦的一年. 这一年用了不少自己没有接触过的东西.如人脸识 ...
- [CV笔记]图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- delphi 处理缩放图像
procedure TTMEImageDeviceIdentifyFrom.DrawText(AImage : TImage; AFile: string);var I: Integer; iWidt ...
- OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
这篇已经写得很好,真心给作者点个赞.题目都是直接转过来的,直接去看吧. Reference Link : http://blog.csdn.net/poem_qianmo/article/detail ...
- 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...
- openCV(三)---图像缩放
UIImage *img1 = [UIImage imageNamed:@"1448941176867"]; //将UIImage转换为IplImage格式 IplImage *p ...
- opencv3 图像处理(一)图像缩放( python与c++ 实现)
opencv3 图像处理 之 图像缩放( python与c++实现 ) 一. 主要函数介绍 1) 图像大小变换 Resize () 原型: void Resize(const CvArr* src,C ...
- 学习 opencv---(12)OpenCV 图像金字塔:高斯金字塔,拉普拉斯金字塔与图片尺寸缩放
在这篇文章里,我们一起学习下 图像金字塔 的一些基本概念,如何使用OpenCV函数pyrUp和pyrDown 对图像进行向上和向下采样,以及了解专门用于缩放图像尺寸的resize函数的用法.此博文一共 ...
随机推荐
- HashMap与ArrayList互相嵌套的代码实现
HashMap嵌套ArrayList的代码实现 结果要求为 三国演义 吕布 周瑜笑傲江湖 令狐冲 林平之神雕侠侣 ...
- base64 json
javascript将base64编码的图片数据转换为file并提交 直接提交base64编码图片数据,过大的话后台会出现转发错误问题. 一个不错的解决方式就是将base64编码的图片数据转换为Blo ...
- js随机生成N位数
function RondomPass(number){ var arr = new Array; "); ;i<number;i++){ ); arr[i] =arr1[n] ; / ...
- PHP站内搜索、多关键字、加亮显示
php搜索代码: 搜索以PHP100开头: SELECT * FROM teble WHERE title LIKE 'PHP100%' 搜索以PHP100结束: SELECT * FROM te ...
- git命令之git tag 给当前分支打标签
git tag - 标签相关操作 发表于 2011年06月29日 由 机器猫 标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ git tag # 在控制台打印出当前仓库的所有标签$ ...
- Microsoft.Web.Redis.RedisSessionStateProvider
https://github.com/Azure/aspnet-redis-providers https://www.nuget.org/packages/Microsoft.Web.RedisSe ...
- 再谈Jquery Ajax方法传递到action 【转载】
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://cnn237111.blog.51cto.com/2359144/984466 之 ...
- Java并发编程核心方法与框架-CompletionService的使用
接口CompletionService的功能是以异步的方式一边生产新的任务,一边处理已完成任务的结果,这样可以将执行任务与处理任务分离.使用submit()执行任务,使用take取得已完成的任务,并按 ...
- java.util.ResourceBundle使用详解
java.util.ResourceBundle使用详解 一.认识国际化资源文件 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的 ...
- 新浪微博客户端(50)-解决输入Emotion表情逐渐变小的问题
UITextView+Extension.h #import <UIKit/UIKit.h> @interface UITextView (Extension) /** 插入属性文本 */ ...

