opencv第一个程序
来源:互联网 发布:域名在哪续费 编辑:程序博客网 时间:2024/05/17 09:19
结构:
学习opencv一书中,提到opencv主体一共分为五个模块。
其中图中没有的模块为没有包含CvAux模块,该模块中一般存放一些即将被淘汰的算法和函数(如基于嵌入式隐马尔可夫模型的人脸识别算法),同时还有一些新出现的实验性的算法和函数(如背景和前景的分割)。
第一个程序
#include <opencv2/opencv.hpp>using namespace std;int main(int argc, char *argv[]){IplImage *img = cvLoadImage("E:\\清明乐山游\\CIMG6232.JPG"); //cvLoadImage:加载图片到内存;cvNamedWindow("窗体", CV_WINDOW_AUTOSIZE);//cv::WINDOW_AUTOSIZE);//创建一个windows窗体标题为参数一;cvShowImage("窗体", img); //显示图片到窗体中;cvWaitKey(0);//等待输入一个按键;cvReleaseImage(&img);//释放图片IplImage结构;cvDestroyWindow("窗体");//释放创建的windows窗体return 0;}我们来看一下IplImage的结构:
typedef struct#ifdef __cplusplus CV_EXPORTS#endif_IplImage{ int nSize; /**< sizeof(IplImage) */ int ID; /**< version (=0)*/ int nChannels; /**< Most of OpenCV functions support 1,2,3 or 4 channels */ int alphaChannel; /**< Ignored by OpenCV */ int depth; /**< Pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported. */ char colorModel[4]; /**< Ignored by OpenCV */ char channelSeq[4]; /**< ditto */ int dataOrder; /**< 0 - interleaved color channels, 1 - separate color channels. cvCreateImage can only create interleaved images */ int origin; /**< 0 - top-left origin, 1 - bottom-left origin (Windows bitmaps style). */ int align; /**< Alignment of image rows (4 or 8). OpenCV ignores it and uses widthStep instead. */ int width; /**< Image width in pixels. */ int height; /**< Image height in pixels. */ struct _IplROI *roi; /**< Image ROI. If NULL, the whole image is selected. */ struct _IplImage *maskROI; /**< Must be NULL. */ void *imageId; /**< " " */ struct _IplTileInfo *tileInfo; /**< " " */ int imageSize; /**< Image data size in bytes (==image->height*image->widthStep in case of interleaved data)*/ char *imageData; /**< Pointer to aligned image data. */ int widthStep; /**< Size of aligned image row in bytes. */ int BorderMode[4]; /**< Ignored by OpenCV. */ int BorderConst[4]; /**< Ditto. */ char *imageDataOrigin; /**< Pointer to very origin of image data (not necessarily aligned) - needed for correct deallocation */#ifdef __cplusplus _IplImage() {} _IplImage(const cv::Mat& m);#endif}IplImage;
运行后效果:
因为窗体是按照图片进行扩充的。所以我们看到的窗体没有把图片显示完整。我们调整下
cvNamedWindow("窗体", CV_WINDOW_NORMAL);
效果图
我们还可以使用cvResizeWindow更改窗体的大小。还可以使用cv::resize把图片的大小调整下。
声明:本人初学opencv,如有错误还请指正。
阅读全文
0 0
- 第一个opencv程序
- 第一个opencv程序
- opencv第一个程序
- 第一个android-opencv程序
- opencv的第一个程序
- Opencv第一个简单程序
- OpenCv创建第一个程序
- opencv的第一个程序
- 【OpenCV入门指南】第一个OpenCV程序
- OpenCV 第一个运行的程序
- 编译第一个LINUX下 OPENCV 程序
- 我的第一个OPENCV程序
- OpenCV学习之第一个程序
- 编译第一个opencv测试程序
- 学习opencv的第一个程序
- QT下 第一个opencv 程序
- Xcode使用opencv的第一个程序
- ubuntu下运行第一个opencv程序
- PHP7扩展开发之字符串处理
- git分支管理策略
- 发送有序广播
- Arduino UNO的原理图
- 单例模式2
- opencv第一个程序
- Android 动画:你真的会使用插值器与估值器吗?(含详细实例教学)
- python交互模式和命令行模式
- 数据结构之n--n(kruskal算法)
- 一个可随意定位置的带色Toast——开源代码Crouton的简单使用
- 关于QString::toWCharArray 无法解析的外部符号
- Spring入门案例 DI
- 多线程同步和死锁的深入分析
- base64文件解码