c语言 归一化图片大小,OpenCV学习笔记(1)——resize函数实现图像大小归一化

在图像处理过程当中,有时须要把图像调整到一样大小,便于处理,这时须要用到图像resize()ios

原函数

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

前两个参数分别为输入和输出图像。dsize表示输出图像的大小,若是为0,则

函数

b3c532ab0fba44e613f92882b4a75959.png6c9597695dae2a2b008746e88481cf92.png74092a6ffadb10bd51b86d80e50819a3.png338f1055a1334c1905f870a568a87557.pngbea4967978e15bb3abb50a286d5ef68e.png3f77ee0e67bf691be5bd110737181ae6.png3a7ff249558831bc41e3a3b8cde92a66.png74092a6ffadb10bd51b86d80e50819a3.png338f1055a1334c1905f870a568a87557.pngbea4967978e15bb3abb50a286d5ef68e.png76dccd98123055d17b6c35c314e81901.pnga99f5272920c4b42a20094c49103757d.png059903740862340e7ef26d7caabf949c.png2f2d83c11ef450b2c3b2081f2471f15c.pngbb63b2540aea19f9b0b41a8db48dd760.pngb3c532ab0fba44e613f92882b4a75959.png76dccd98123055d17b6c35c314e81901.png0c239da639d66724c2a5824c53ec2b74.png1f1e8de35be44108310d6d58a5cb5e74.pngb637c45c5a3c08b3d60dcfdde5c942b1.png6c9597695dae2a2b008746e88481cf92.pnga99f5272920c4b42a20094c49103757d.png045559c3e89e94546aadf55b3907668c.png4324ed366ed8f5cda4de10ddb2b9b591.png045559c3e89e94546aadf55b3907668c.png059903740862340e7ef26d7caabf949c.png102cbf9daf70aa498f3dd8edd1c9dad2.png6c9597695dae2a2b008746e88481cf92.pngd733635b0594e601d4728551240d3d44.pnge65772aa812105ef8508cf64d1fd482d.pnga99f5272920c4b42a20094c49103757d.png059903740862340e7ef26d7caabf949c.png2f2d83c11ef450b2c3b2081f2471f15c.pngbb63b2540aea19f9b0b41a8db48dd760.pngb3c532ab0fba44e613f92882b4a75959.png76dccd98123055d17b6c35c314e81901.png0c239da639d66724c2a5824c53ec2b74.png92d78adcee450910e4b88030f4540c66.pngb637c45c5a3c08b3d60dcfdde5c942b1.png6c9597695dae2a2b008746e88481cf92.pnga99f5272920c4b42a20094c49103757d.png045559c3e89e94546aadf55b3907668c.png4324ed366ed8f5cda4de10ddb2b9b591.pnga99f5272920c4b42a20094c49103757d.png059903740862340e7ef26d7caabf949c.png40fa066d9e4f1b1dc063b2444fea631c.png6c9597695dae2a2b008746e88481cf92.pngd733635b0594e601d4728551240d3d44.pngd733635b0594e601d4728551240d3d44.pngdsize=Size(round(fx∗src.cols),round(fy∗src.rows))

dsize和fx、fy不能同时为0。fx、fy是沿x轴和y轴的缩放系数;默认取0时,计算以下

0c239da639d66724c2a5824c53ec2b74.png1f1e8de35be44108310d6d58a5cb5e74.png3f77ee0e67bf691be5bd110737181ae6.png76dccd98123055d17b6c35c314e81901.pngb3c532ab0fba44e613f92882b4a75959.png059903740862340e7ef26d7caabf949c.png2f2d83c11ef450b2c3b2081f2471f15c.png40bf412a481d13f63f56c3adf3a3a6f7.png102cbf9daf70aa498f3dd8edd1c9dad2.pngbea4967978e15bb3abb50a286d5ef68e.pngd733635b0594e601d4728551240d3d44.pngb3c532ab0fba44e613f92882b4a75959.png6c9597695dae2a2b008746e88481cf92.png74092a6ffadb10bd51b86d80e50819a3.png338f1055a1334c1905f870a568a87557.pngbea4967978e15bb3abb50a286d5ef68e.png4324ed366ed8f5cda4de10ddb2b9b591.png40fa066d9e4f1b1dc063b2444fea631c.png74092a6ffadb10bd51b86d80e50819a3.pngb3c532ab0fba44e613f92882b4a75959.png3d9d71b76c1e848bc56d134ebe1b8ec4.pngb118516083c6e628292b10734e6deae7.pngb5a391c39b9b038f0f7b92d6db37eeb2.png6c9597695dae2a2b008746e88481cf92.pnga99f5272920c4b42a20094c49103757d.png045559c3e89e94546aadf55b3907668c.png4324ed366ed8f5cda4de10ddb2b9b591.png045559c3e89e94546aadf55b3907668c.png059903740862340e7ef26d7caabf949c.png102cbf9daf70aa498f3dd8edd1c9dad2.png6c9597695dae2a2b008746e88481cf92.pngfx=(double)dsize.width/src.cols

0c239da639d66724c2a5824c53ec2b74.png92d78adcee450910e4b88030f4540c66.png3f77ee0e67bf691be5bd110737181ae6.png76dccd98123055d17b6c35c314e81901.pngb3c532ab0fba44e613f92882b4a75959.png059903740862340e7ef26d7caabf949c.png2f2d83c11ef450b2c3b2081f2471f15c.png40bf412a481d13f63f56c3adf3a3a6f7.png102cbf9daf70aa498f3dd8edd1c9dad2.pngbea4967978e15bb3abb50a286d5ef68e.pngd733635b0594e601d4728551240d3d44.pngb3c532ab0fba44e613f92882b4a75959.png6c9597695dae2a2b008746e88481cf92.png74092a6ffadb10bd51b86d80e50819a3.png338f1055a1334c1905f870a568a87557.pngbea4967978e15bb3abb50a286d5ef68e.png4324ed366ed8f5cda4de10ddb2b9b591.pngb118516083c6e628292b10734e6deae7.pngbea4967978e15bb3abb50a286d5ef68e.png74092a6ffadb10bd51b86d80e50819a3.png7bc68beb72b8b4ef8fda61133418b57c.pngb118516083c6e628292b10734e6deae7.png3d9d71b76c1e848bc56d134ebe1b8ec4.pngb5a391c39b9b038f0f7b92d6db37eeb2.png6c9597695dae2a2b008746e88481cf92.pnga99f5272920c4b42a20094c49103757d.png045559c3e89e94546aadf55b3907668c.png4324ed366ed8f5cda4de10ddb2b9b591.pnga99f5272920c4b42a20094c49103757d.png059903740862340e7ef26d7caabf949c.png40fa066d9e4f1b1dc063b2444fea631c.png6c9597695dae2a2b008746e88481cf92.pngfy=(double)dsize.height/src.rows

最优一个参数interpolation表示插值方式,有如下几种:

INTER_NEAREST - 最近邻插值

INTER_LINEAR - 线性插值(默认)

INTER_AREA - 区域插值

INTER_CUBIC - 三次样条插值

INTER_LANCZOS4 - Lanczos插值

INTER_NEAREST最近邻插值

目标以下的像素点为对应的最近的原图像的像素点。假设原图像大小为(s_height, s_width),目标图像大小为(d_height, d_width),那么高度和宽度的缩放比例为h_ratio = s_height/d_height,w_ratio=s_width/d_width。ui

对面目标图像像素:(x, y)其值等于原图像(x * w_ration, y * h_ration)处的值。atom

INTER_LINEAR 线性插值

默认使用。在使用最近邻插值时,获得的坐标未必是一个整数,例如

(xw_ration, yh_ration)=(10.5, 20.5),那么可能取得坐标点就有四种(10, 20)、(11, 20)、(10, 21)、(11, 21)。双线性插值,会把这四个坐标的像素值加权求和。

D(x, y) = S(j, k) * w1 + S(j+1, k) w2 + S(j+1,k+1)w3 + S(j, K+1) * w4,其中w为权值。权值大小和计算位置的小数部分有关。spa

CV_INTER_AREA:区域插值

区域插值分为3种状况。图像放大时相似于线性插值,图像缩小时能够避免波纹出现。rest

INTER_CUBIC 三次样条插值

使用4x4邻域内的像素双3次插值。code

INTER_LANCZOS4 Lanczos插值

使用8×8像素邻域的Lanczos插值orm

实例对象

#include

#include

#include

#include

#include

#define NORM_WIDTH 230 //归一化后的宽和高

#define NORM_HEIGHT 230

using namespace std;

using namespace cv;

int main(void)

{

Mat src_img;

string imgSrcPath = "pic";//使用相对路径,图片和代码保存在相同的目录下

string imgSavePath = "pic_new";

imgSrcPath += ".png";

src_img = imread(imgSrcPath,1);

namedWindow("Test"); //建立一个名为Test窗口

imshow("Test",src_img); //窗口中显示图像

waitKey(1000);

Mat dst_img_rsize(NORM_WIDTH,NORM_HEIGHT,src_img.type()); //建立Mat对象并指定大小和类型

resize(src_img,dst_img_rsize,dst_img_rsize.size(),0,0,INTER_LINEAR);

imshow("Test",dst_img_rsize);

imgSavePath += ".png";

waitKey(5000);

imwrite(imgSavePath,dst_img_rsize);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值