使用opencv拉伸图像扩大分辨率示例_C 语言

使用OPENCV图像处理库,拉伸图像扩大分辨率

复制代码 代码如下:

//缩放图像文件
#include <opencv2/opencv.hpp>
using namespace std;
//隐藏控制台窗口
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
int main()
{
 const char *pstrImageName = "airplane.jpg";
 const char *pstrSaveImageName = "airplane缩放图.jpg";
 const char *pstrWindowsSrcTitle = "原图";
 const char *pstrWindowsDstTitle = "缩放图";

 double fScale = 2;//缩放倍数
 CvSize czSize; //目标图像尺寸

 //从文件中读取图像 
 IplImage *pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);
 IplImage *pDstImage = NULL; 

 //计算目标图像大小
 czSize.width = pSrcImage->width * fScale;
 czSize.height = pSrcImage->height * fScale;

 //创建图像并缩放
 pDstImage = cvCreateImage(czSize, pSrcImage->depth, pSrcImage->nChannels);
 cvResize(pSrcImage, pDstImage, CV_INTER_AREA);
 

 //创建窗口
 cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE);
 cvNamedWindow(pstrWindowsDstTitle, CV_WINDOW_AUTOSIZE);

 //在指定窗口中显示图像
 cvShowImage(pstrWindowsSrcTitle, pSrcImage);
 cvShowImage(pstrWindowsDstTitle, pDstImage);

 //等待按键事件
 cvWaitKey();

 //保存图片
 cvSaveImage(pstrSaveImageName, pDstImage);

 cvDestroyWindow(pstrWindowsSrcTitle);
 cvDestroyWindow(pstrWindowsDstTitle);
 cvReleaseImage(&pSrcImage);
 cvReleaseImage(&pDstImage);
 return 0;
}

时间: 2024-09-20 00:52:06

使用opencv拉伸图像扩大分辨率示例_C 语言的相关文章

基于C++实现kinect+opencv 获取深度及彩色数据_C 语言

开发环境 vs2010+OPENCV2.4.10 首先,下载最新的Kinect 2 SDK  http://www.microsoft.com/en-us/kinectforwindows/develop/downloads-docs.aspx 下载之后不要插入Kinect,最好也不用插入除了键盘鼠标以外的其它USB设备,然后安装SDK,安装完成之后插入Kinect,会有安装新设备的提示.安装完成之后可以去"开始"那里找到两个新安装的软件,一个是可以显示Kinect深度图,另外一个软件

实现opencv图像裁剪分屏显示示例_C 语言

使用OPENCV图像处理库,将图片裁剪分屏显示 复制代码 代码如下: //#include "stdafx.h"#include <opencv2/opencv.hpp> //#include <opencv2/imgproc/imgproc.hpp>//#include <opencv2/highgui/highgui.hpp>#include <iostream>#include <vector>using namespa

C++设计模式编程中的观察者模式使用示例_C 语言

概述:最近中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑客户端上,网页上,手机上,iPad上都可以查看到该证券的实时行情,这种情况下我们应该怎么设计我们的软件呢?我们可以这样:小明的所有客户端上都订阅中国证券这个股票,只要股票一有变化,所有的客户端都会被通知到并且被自动更新. 这就是我们的观察者模式,她定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新. 类图: 可以看出,在这个观察者模式的实现里有

C++之BOOST字符串查找示例_C 语言

本文实例讲述了C++中BOOST字符串查找的方法,分享给大家供大家参考.具体方法如下: BOOST  字符串查找示例 复制代码 代码如下: #include <string>  #include <iostream>  #include <algorithm>  #include <functional>  #include <boost/algorithm/string/case_conv.hpp>  #include <boost/al

C++中关于委派(Delegates)的实现示例_C 语言

 介绍 在 C++ 中通过一个全局函数来绑定到对象的成员函数是很有用的,这个特性也存在于其他语言中,例如 C#的委派.在 C++ 中相当于成员函数指针,但是 并没有提供相应的特性.在这篇文章中,我想提出一个简单的 C++ 委派的实现,是用 C++ 成员函数指针和 C++11 的可变模板(variadic templates),目前这套实现方法仅支持 GNU C++ 4.7.0,在 Windows 下可使用 MinGW. 背景 在我的方法中奖提供一个create_delegate函数,可通过下面两

C++中的类模板详解及示例_C 语言

C++中的函数模板 对于类的声明来说,也有同样的问题.有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类: 复制代码 代码如下: class Compare_int{ public:  Compare(int a,int b)  {   x=a;   y=b;  }   int max()  {   return (x>y)?x:y;  }  int min()  {   return (x<y)?x:y;  } private:  int x,y;}; 其作用是

Cocos2d-x中实现弹出对话框示例_C 语言

在游戏中我们经常会看到弹出一个对话框让我们进行选择,今天我们就在cocos2dx中实现这个对话框.对话框说白了也是一个层,当我们点击某一个按钮的时候这个层被加进了当前的场景中,同时场景中的其他的层都是不可点击的,这个时候就涉及到触摸的优先级的一些问题,当然有些时候你也可以根据自己的需要让其他的层也可以点击,但是道理都是一样的,学会了这个其他的按照自己的要求去实现吧.下面我将弹出层单独分装成一个类,供我们调用. /*对话框场景类的头文件*/ #ifndef _POP_SCENE_H_ #defin

深入解析Radix Sort基数排序算法思想及C语言实现示例_C 语言

基本思想: 将待排数据中的每组关键字依次进行桶分配. 具体示例: 278.109.063.930.589.184.505.269.008.083 我们将每个数值的个位,十位,百位分成三个关键字: 278 -> k1(个位)=8,k2(十位)=7,k3=(百位)=2. 然后从最低位个位开始(从最次关键字开始),对所有数据的k1关键字进行桶分配(因为,每个数字都是 0-9的,因此桶大小为10),再依次输出桶中的数据得到下面的序列. 930.063.083.184.505.278.008.109.58

VC实现五子棋游戏的一个算法示例_C 语言

本文讲述了VC实现五子棋游戏的一个算法示例,该算法采用极大极小剪枝博弈算法,感兴趣的读者可以对程序中不完善的部分进行修改与完善. 该设计主要包括:数据结构.估值函数.胜负判断.搜索算法 程序运行界面如下: 具体实现步骤如下: 1.数据结构 //记录每步棋,可以建立链表用来进行悔棋.后退(本程序没有实现) struct Step { int x,y; //棋子坐标 int ball; //表示下子方{BLACK,WHITE} }; //记录棋盘情况,用于搜索过程 class CBoardSitua