OpenCV中pyrUp()和pyrDown()函数使用
来源:互联网 发布:鸟哥 linux 编辑:程序博客网 时间:2024/06/11 23:43
cmakelists:
cmake_minimum_required(VERSION 3.7)project(pyrUp_and_pyrDown)set(CMAKE_CXX_STANDARD 11)find_package(OpenCV REQUIRED)include_directories(${OpenCV_DIRS})set(SOURCE_FILES main.cpp)add_executable(pyrUp_and_pyrDown ${SOURCE_FILES})target_link_libraries(pyrUp_and_pyrDown ${OpenCV_LIBS})
程序:
#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;int main(){ Mat src_image = imread("ubuntu.png"); Mat tmp_image, dst_image1, dst_image2; tmp_image = src_image; imshow("原始图片", src_image); //看一下函数原型 //参数:源图像,目标图像 //这里的const Size& dstsize = Size()是有默认值的,不像resize()没有默认值。默认值是放大或缩小一倍 //第三个边界类型一般不管它,用默认值就好/* CV_EXPORTS_W void pyrUp( InputArray src, OutputArray dst, const Size& dstsize = Size(), int borderType = BORDER_DEFAULT );*//* CV_EXPORTS_W void pyrDown( InputArray src, OutputArray dst, const Size& dstsize = Size(), int borderType = BORDER_DEFAULT );*/ pyrUp(tmp_image, dst_image1, Size(tmp_image.cols*2, tmp_image.rows*2)); pyrDown(tmp_image, dst_image2, Size(tmp_image.cols/2, tmp_image.rows/2)); imshow("pyrUp放大图像", dst_image1); imshow("pyrDown缩小图像", dst_image2); waitKey(0); return 0;}
这里注意一下,pyrup和pyrdown函数只能固定对图像进行长宽二倍或半倍的缩小和放大,不能是其他大小,也就是pyrDown()中的Size(tmp_image.cols/2, tmp_image.rows/2)必须是这个大小,换成其他的会报错,同理pyrUp()也是一样,必须是*2。如果想多次放缩,可以用循环多次调用。
例如像这样:
int main(){ Mat src_image=imread("open2.JPG"); Mat src_image_gray; cvtColor( src_image, src_image_gray, CV_BGR2GRAY ); //imshow("原始图:", src_image); Mat tmp_image, imagel; tmp_image = src_image_gray; for (int i = 0; i < 2; ++i) { pyrDown(tmp_image, imagel, Size(tmp_image.cols/2, tmp_image.rows/2)); tmp_image=imagel; } cout<<imagel.cols<<"*"<<imagel.rows<<endl; imshow("降低分辨率后:", imagel); std::vector<KeyPoint> keypoints_1; Ptr<ORB> orb = ORB::create(); orb->detect(imagel,keypoints_1); cout<<keypoints_1.size()<<endl; Mat imagel_with_keypoints; drawKeypoints(imagel, keypoints_1, imagel_with_keypoints, Scalar::all(-1), DrawMatchesFlags::DEFAULT); imshow("关键点图:", imagel_with_keypoints); waitKey(0); return 0;}
阅读全文
0 0
- OpenCV中pyrUp()和pyrDown()函数使用
- Opencv 图像金字塔pyrDown和pyrUp函数
- OpenCV 图像金字塔 pyrDown 和pyrUp函数
- pyrDown和pyrUp函数
- matlab实现opencv的pyrDown和pyrUp函数
- opencv函数GaussianBlur,pyrDown,pyrUp深究
- 图像金字塔的概念及OpenCV函数pyrUp()和pyrDown()
- 用OpenCV的pyrUp和pyrDown函数计算图像金字塔(向上/下采样)
- opencv之pyrDown与pyrUp
- OpenCV笔记:pyrDown()函数和pryUp()函数的使用
- opencv学习imresize,pyrUp,pyrDown函数对图像进行缩放操作
- opencv的pyrUp()函数
- opencv的pyrDown()函数
- 图像金字塔 pyrUp pyrDown
- size()\pyrDown\pyrUp
- 通过pyrUp和pyrDown实现图像缩放的简单程序
- Opencv向上采样-pyrUp函数
- Opencv向下采样-pyrDown函数
- 二级MSOffice高级应用考试大纲(2013年版)
- MySQL 基本信息的查询(初始化配置信息 my.ini)
- RecyclerView上拉刷新与下拉加载封装
- 文章标题
- Mybatis-实现ORACLE分页查询
- OpenCV中pyrUp()和pyrDown()函数使用
- require.js的介绍与使用
- github同步数据实战
- 在虚拟机上安装Oracle数据库
- ccf2014_12_2 Z字形扫描
- CSDN的博客积分计算规则及博客排名规则
- [uoj 34 多项式乘法] FFT&NTT 模板
- BMA与NBMA
- 用户角色权限分析