使用opencv和python进行智能图像处理,python opencv图像增强

  使用opencv和python进行智能图像处理,python opencv图像增强

  本文主要介绍了Python使用OpenCV缩放图像的功能,并给出了OpenCV中pryUp和pryDown的两种调用方法和用法。这篇文章很详细的介绍了你,对你的学习或者工作有一定的参考价值。有需要的朋友可以参考一下。

  OpenCV:图像缩放和图像金字塔

  当然,缩放图像最简单的方法是调用resize函数!

  Resize函数可以精确地将源图像转换成指定大小的目标图像。

  缩小图像,一般建议使用CV_INETR_AREA进行插值;要放大图像,建议使用CV_INTER_LINEAR。

  

现在说说调用方式

  

第一种,规定好你要图片的尺寸,就是你填入你要的图片的长和高。

  # includeopencv2 \ opencv.hpp

  # includeopenv2 \ high GUI \ high GUI . HPP

  使用命名空间std

  使用名称空间cv;

  //缩小和放大图片

  int main()

  {

  mat img=im read( lol 5 . jpg );

  Imshow(原图,img);

  Mat dst=Mat:zeros(512,512,CV _ 8uc 3);//我想把它转换成512*512大小

  resize(img,dst,dst . size());

  Imshow(调整大小后,dst);

  wait key(0);

  }

  

第二种,填入你要缩小或者放大的比率。

  # includeopencv2 \ opencv.hpp

  # includeopenv2 \ high GUI \ high GUI . HPP

  使用命名空间std

  使用名称空间cv;

  //缩小和放大图片

  int main()

  {

  mat img=im read( lol 5 . jpg );

  Imshow(原图,img);

  Mat dst

  resize(img,dst,size(),0.5,0.5);//我的长宽变成了原来的0.5倍。

  Imshow(调整大小后,dst);

  wait key(0);

  }

  

接下来说说图像金字塔

  说白了,图像金字塔是用来进行图像缩放的,和resize函数做的一样,那我们还需要学吗?我觉得很有必要,因为学习卷积神经网络会遇到这个术语,所以大家都要学,在图形上绕不过去!

  说说形象金字塔吧。

  其实很能理解。如上图所示,我们将图像层比作金字塔。级别越高,图像尺寸越小,分辨率越低。

  

两种类型的金字塔:

  高斯金字塔:用于下采样,主图像金字塔;拉普拉斯金字塔:用来重构图像,也就是预测残差(我的理解是因为小图像被放大了,所以必须插入一些像素值,那么这些像素值是什么合适呢?然后,需要根据周围的像素进行预测),最大程度的还原图像。比如把小图像重构成大图像,图像金字塔里有两个高频名词:上采样和下采样。现在来说说他们两个。

  上采样:即放大画面(所谓上,就是放大);利用PryUp函数进行下采样:即缩小画面(所谓下,就是减少它);使用PryDown函数进行下采样:

  对图像执行高斯核卷积。

  删除所有偶数行和列。

  下采样是图像压缩,会丢失图像信息。

  上采样步骤:

  将图像在每个方向放大两倍,并用0填充新的行和列;使用与之前相同的核(乘以4)与放大的图像进行卷积,以获得新添加像素的近似值。上采样和下采样有一个严重的问题,就是图像变得模糊,因为在缩放的过程中信息丢失了。要解决这个问题,我们得看看拉普拉斯金字塔。

  下面给出了pryUp和pryDown在OpenCV中的用法。

  # includeopencv2 \ opencv.hpp

  # includeopenv2 \ high GUI \ high GUI . HPP

  使用命名空间std

  使用名称空间cv;

  //图像金字塔

  int main()

  {

  mat img=im read( lol 8 . jpg );

  Imshow(原图,img);

  Mat dst,dst 2;

  pyrUp(img,dst,Size(img.cols*2,img . rows * 2));//放大一倍

  pyrDown(img,dst2,Size(img.cols * 0.5,img . rows * 0.5));//缩小到原始大小的一半

  Imshow(尺寸放大后,dst);

  Imshow(缩小尺寸后,dst 2);

  wait key(0);

  }

  显然,无论是放大还是缩小,图像都变得模糊,这是他的致命缺陷。

  个人认为,如果要缩放,使用resize功能即可。毕竟太方便了,图像也不会变模糊!

  关于Python使用OpenCV的图像缩放功能的这篇文章到此为止。有关OpenCV图像缩放的更多信息,请搜索流行的IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: