opencv中怎么修改图像大小,增加几行

c# OpenCvSharp图像裁剪、调整大小、旋转、透视(三) 图像裁剪、调整大小、旋转、透视图像处理基本操作。 阅读详情

opencv中图像的大小可以通过一个resize()函数调整:

void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR ); 

参数意思:

dsize:输出图像的大小。如果这个参数不为0,那么就代表将原图像缩放到这个Size(width,height)指定的大小;如果这个参数为0,那么原图像缩放之后的大小就要通过下面的公式来计算:

\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}

fx和fy就是下面要说的两个参数,是图像width方向和height方向的缩放比例。

fx:width方向的缩放比例,如果它是0,那么它就会按照\texttt{(double)dsize.width/src.cols}来计算;

fy:height方向的缩放比例,如果它是0,那么它就会按照\texttt{(double)dsize.height/src.rows}来计算;


那如果直接在size中增加几行,按下面格式写就是不对:

方法一:

resize(globalval.mask_Image, globalval.mask_Image, Size((globalval.mask_Image.rows + 2), (globalval.mask_Image.cols + 2)));

所以这么直接加2是不对的,只能是乘以一个数。

那在opencv中怎么增加几行几列呢,这是就需要cvResize()函数,该函数也是实现图像的放大和缩小,不过参数不同

C: void cvResize(const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR )

这时需要自己定义一个函数,来实现长和宽的增加,

 

//对mat2的长和宽重新赋值

void myResize(Mat &img1, Mat &img2, int width, int height)

{

IplImage pI_1 = img1, pI_2;

img2 = Mat(width, height, CV_8UC1,1);//一定要加这个类型,要不然图片格式不同

pI_2 = img2;

cvResize(&pI_1, &pI_2, 1);

}

在主函数调用的时候,长宽做相应的增加即可:

myResize(mask_Image,mask_Image, src_Image.rows + 2, src_Image.cols + 2);

但是在调用cvResize函数时出现了一个错误:未加载 opencv_imgpro2410d.pdb这个错误



在网上百度查找,也有好多人遇到这个问题,在debug调试时,这个问题就会出现,如果release调试时,就不会出现,因为在release是调用是不带d的pdb,debug调试时是调用带d的pdb.

出现这种问题也许是一些小的问题和疏漏,例如图片的加载路径把“/”换成“\”

我的问题是:掩膜在转换成灰度图像时,使用的COLOR_RGB2GRAY  opencv中存储一直按照BGR顺序进行存储的,

改成COLOR_BGR2GRAY 就是这个问题导致一直出现这个错误。

方法二:

如果查看cvResize()函数的定义:



Size  mask_size(src_Image.cols + 2, globalval.src_Image.rows + 2);

resize(mask_Image, mask_Image, mask_size, (double)(mask_size.width / src_Image.cols), (double)(mask_size.height / src_Image.rows));

这样写也是可以的。



OpenCV的resize方法4种插值方法效果对比器 阅读详情

相关推荐

利用OpenCV修改图像大小,转换图像格式

有一个提取图像直线的程序,好不容易编译过了,发现只可以处理宽度为64的倍数的bmp图片,因此写了一个将某个目录下的所有tif文件的宽度修改为64的倍数(最接近原始宽度)的数值,然后另存为bmp的程序。 1、修改图像大小只需要用函数cvResize(srcColorImage,dstColorImage,CV_INTER_CUBIC); 2、另存为图像只要用函数cvSaveImage(outpu

ihadl的专栏 5849

opencv改变图像大小cvResize和resize及其原理

如:函数 原始图像为M*N,缩小后图像大小要求为m*n,则须要将图像划分为(M*N)/(m*n)大小的互不相交的小块,计算小块的平均值,该值做为缩小图像对应的像素值。atom 以下图:spa 咱们把16*16的图像缩小成4*4的图像:code 最后对应的值以下: 在Opencv里面图片缩放函数以下图片 void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interp.

蛰伏--当你不够强大时,就不要放弃努力 5664

OpenCV批量修改图像大小

主要使用cvCreateImage函数

何似莫相逢 3539

OpenCv调整图片(Mat)大小

CV_EXPORTS_W void resize( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR ); 和之前Iplimag

小松鼠的专栏 1万+

OpenCV中对avi视频的处理,并修改视频大小

接触OpenCV不久,学的不是很全面,主要用的多的是与自己现在项目有关的部分,跟大家分享一下。 关于OpenCV的配置问题,网上有很多的例程,跟着做就好了,我使用的是vs2010平台。 1、OpenCV对avi视频的处理 OpenCV中提供了大量的图形图像处理的函数,包括读取本地的图片cvLoadImage函数,而处理avi视频可以用cvCreateFileCapture先读取本地的视频,然

liuyang1993的专栏 5983

OpenCV解除加载图像大小的限制

前言 最近做项目遇到一个问题,就是有个分辨率大小35000*35000的图像文件,无法通过OpenCV的imread函数读取,只要一读取,程序就直接崩溃了。报abort错误。我调试程序,发现总像素数目已经超过了OpenCV声明最大像素数目(CV_IO_MAX_IMAGE_PIXELS)限制,所以无法读取! 一、定位问题 OpenCV本身对加载的图像大小是由限制的,这个限制定义在下面的文件中: modules\imgcodecs\src\loadsave.cpp 这个源码文件中,有三个关于图像imr

huangkunjoker的博客 2820

opencv c++ 修改加载图像大小限制

文件:E:\software\opencv\openCV411\sources\modules\imgcodecs\src\loadsave.cpp。

fuyouzhiyi的博客 1199

OpenCV-修改图片的大小-resize()函数

       在处理图片时,常常需要时得修改图片的比例或者匹配另外一张图片的大小,那就可以使用resize(),重新修改源图片的大小或使得和另外一张图片尺寸相同。 首先看看resize()的参数 void resize( InputArray src, OutputArray dst,Size dsize, double fx = 0, double fy = 0,int interpolat...

qq_35255905的博客 3414

解密 | OpenCV加载图像大小是有限制的 ?

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达问题来由最近有人问一个问题,就是它有个大小800MB的图像文件,发现无法通过OpenCV的imread函数加载,只要一...

小白学视觉 3133

opencv之解决对加载图片大小限制的问题

以下示例中, opencv的版本为: 4.5.0 为了opencv能够输入大于32000*32000的图片,做了一下修改: 修改文件路径: opencv/modules/imgcodecs/src/loadsave.cpp 修改前: static const size_t CV_IO_MAX_IMAGE_PARAMS = cv::utils::getConfigurationParameterSizeT("OPENCV_IO_MAX_IMAGE_PARAMS", 50); static con

ancy的博客 3572

OpenCV-Python实战(1)——OpenCV简介与图像处理基础

OpenCV 是一个的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时也提供了 Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。在本文中,将介绍 OpenCV 库,包括它的主要模块和典型应用场景,同时使用 OpenCV-Python 实战讲解图像处理基础要点。

盼小辉丶的博客 27万+

opencv 修改图像数值_OpenCV改变图像大小的操作

OpenCV改变图像大小的操作有两类:resize与图像金字塔,但是这两类操作差别还是比较大的。一、resize函数原型void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )各个参数的意义比较直观,但是需要注意的是dsize...

weixin_39585617的博客 604

OpenCV-Python实战(4)——OpenCV常见图像处理技术

图像处理技术是计算机视觉项目的核心,通常是计算机视觉项目中的关键工具,可以使用它们来完成各种计算机视觉任务。因此,如果要构建计算机视觉项目,就需要对图像处理有足够的了解。在本文中,将介绍计算机视觉项目中常见的图像处理技术,主要包括图像的几何变换和图像滤波等。

盼小辉丶的博客 3万+

opencv改变图像大小cvResize和resize

在实现图像窗口展示的时候,经常出现图像过大或过小而无法有效的展示全图,opencv提供了cvResize()和resize()两个函数进行相应的缩放操作 默认图片的坐标 1、cvResize:函数原形 CVAPI(void) cvResize( const CvArr* src, CvArr* dst, int interpolation CV_DEFAULT( CV_INTER_L...

EmbeddedCoder 的优快云博客 6万+

c# OpenCvSharp的图像基本运算:加、减、乘、除、与、或、异或

c# OpenCvSharp的图像基本运算:加、减、乘、除、与、或、异或,项目实现了将两张图片基于OpenCvSharp进行基本的逻辑运算,并在picturebox上显示结果,最后将图片保存到本地磁盘。

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手

文章目录TCP介绍三次握手四次挥手滑动窗口拥塞避免算法 TCP介绍 三次握手 四次挥手

热爱编程的菜鸟 1万+

【OpenCV】访问图像像素值并修改--IplImage

访问图像像素值并修改【IplImage】

summer的博客 4757

TRK-MPC5634M开发板实战:从硬件解析到CAN、ADC外设驱动调试

在嵌入式系统开发,尤其是汽车电子和工业控制领域,微控制器(MCU)是核心执行单元。其工作原理基于处理器内核、存储器和丰富的外设接口协同工作,通过软件编程实现对硬件的精确控制。这种技术价值在于能够为严苛环境提供可靠、实时的控制解决方案。典型的应用场景包括汽车车身控制、网关、电池管理系统以及工业自动化设备。本文聚焦于恩智浦(NXP)基于Power Architecture e200z0内核的汽车级MCU——MPC5634M,并以其官方评估板TRK-MPC5634M为平台,深入探讨其硬件设计逻辑、软件环境搭建及核

weixin_29997523的博客 290

OpenCV基础教程——加载、修改、保存图像

OpenCV基础教程一 加载图像 显示图像 修改图像 保存图像 代码演示 人生只有因为所有,没有如果那么 1、加载图像(cv::imread) imread功能是加载图像文件成为一个Mat对象 API详解:Mat imread(const string& filename, int flags = 1) ; 第一个参数表示图像文件名称 第二个参数表示加载的图像是什...

Gary_ghw的博客 1万+

数控弯管机xyz转换ybc的算法_花了一年时间开发的三维弯管机交互式转档软件(三维管子模型UG,SOLIDWORK,PRO/E文件转成YBC)...

在弯管机加工中,由管子模型生成可直接进行弯管加工的YBC数据可以大大提高弯管编程过程.传统的做法是先用dxf数据文件(用autocad绘制管子的轴心线数据)转出XYZ数据,然后由XYZ数据转成YBC数据,而且大部分厂家对文件版本以及软件做管方式都有不少限制,这大大花费了用户的时间跟精力.随着企业的信息化管理以及不断的技术升级,传统用autocad线条模式来描述管子的方式正在被用户用PRO/E,UG...

weixin_29065959的博客 1965

Linux | i.MX6ULL Mqtt 移植教程

本文介绍了MQTT协议在物联网中的应用及其实现工具Mosquitto的移植过程。使用Ubuntu 16.04环境和gcc交叉编译器,详细说明了从X86平台安装测试到ARM开发板移植的完整步骤。重点包括:Mosquitto的安装配置、服务启动测试方法、依赖库openssl和libuuid的交叉编译过程、路径参数修改要点,以及最终在开发板上的功能测试验证。文中提供了具体的命令操作和路径修改示例,强调路径一致性对编译成功的重要性。该移植方案实现了轻量级MQTT协议在嵌入式设备中的应用。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 138

OpenCV图像加载、显示、修改、保存

OpenCV图像加载、显示、修改、保存前言图像加载图像显示图像修改图像保存示例 前言 本文使用的环境为:Qt5.11 + OpenCV3.4.6 环境安装参考文档:https://blog.youkuaiyun.com/z634863434/article/details/89950961 图像加载 加载图像主要使用到的函数为cv::imread,首先看一下cv::imread的函数原型和介绍。 Mat cv...

CarbonPie 526

winform自定义控件(gdi+)(1)———设置透明背景色

本文详细讲解了如何在winform中设置控件的背景色为透明色

qq_34059233的博客 3688
上一篇: 数组中字符出现的次数问题
下一篇: caffe学习 - solver的优化方法
Traveling_DING
博客等级 码龄12年 65粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值