opencv实现图像的缩放

图像的缩放是指将图像的尺寸变小或者变大的过程,也就是减少或者增加原图像数据的像素个数。图像缩放会在一定程度上面丢失图像的信息,因此需要考虑适宜的方法进行操作。如果数字图像中像素坐标为非负整数,图像缩放过程很可能回事的某些坐标为浮点数,因此需要用到图像插值方法、
1.基于等间隔提取图像缩放
等间隔图像缩放时通过对源图像进行均匀采样来完成的。对于源图像数据f(x,y),其分辨率为M*N,如果将其分辨率改成m*n,对于等间隔采样而言,其宽度缩放因子就是M/m,高度缩放因子就是N/n。如果宽度和高度缩放成都相等的话,那就代表源图像数据等比例缩放。如果不等,那就会照成图形扭曲现象。
2.基于区域子快提取图像缩放
区域子快提取图像缩放时通过对源图像进行区域子快划分。然后提取子块中的像素值作为采样像素已构成新的图像来实现。提取子快图像值常用的方法有计算子快像素的中值与计算子快的均值。对源图像进行区域划分同样也有很多种方法,常用的方法是根据缩放因子等比例的提取子快与自适应因子提取子快。
代码如下:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace std;
//基于等间隔提取图像缩放
cv::Mat imageReduction1(cv::Mat &srcImagefloat kxfloat ky)
{
    //获取输出图像分辨率
    int nRows = cvRound(srcImage.rows * kx);
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值