//类型定义
CvPoint point(2, 3);
CvPoint2D32f point1(2, 3);
CvPoint3D32f point2(2, 3);
CvSize size(2, 3);
CvSize2D32f size1(2, 3);
CvRect rect(0, 0, 50, 50);

//mat使用
float x[3][4] = {1, 2, 3, 4, 5, 5, 6};
CvMat *mat = cvCreateMat(3, 4, CV_32FC1);
cvInitMatHeader(mat, 3, 4, CV_32FC1, x);

cvmSet(mat, 2, 3, 123);
for (int i = 0; i < 3; i++){
for (int j = 0; j < 4; j++){
printf("%f ", cvmGet(mat, i, j));
}
printf("\n");
}
CvMat *mat1 = cvCloneMat(mat);
cvReleaseMat(&mat1);
cvReleaseMat(&mat);

//图片使用

{
IplImage *ipl = cvLoadImage("E:\\4.bmp");
const string strWindowName = "123";
cvNamedWindow(strWindowName.c_str(), 1);
cvRectangle(ipl, CvPoint(0, 0), CvPoint(50, 50), Scalar(255, 0, 0), 1);
cvCircle(ipl, CvPoint(100, 100), 20, Scalar(0, 255, 0));
cvLine(ipl, CvPoint(50, 50), CvPoint(100, 100), Scalar(255, 0, 0));
{
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC, 1.0, 1.0, 0, 1);
cvPutText(ipl, "123", CvPoint(100, 100), &font, Scalar(255, 255, 0));
CvSize sizeFont;
int nBaseLine = 0;
cvGetTextSize("123", &font, &sizeFont, &nBaseLine);
printf("width = %d  height = %d  line = %d", sizeFont.width, sizeFont.height, nBaseLine);
}
{
//for (int i = 0; i < ipl->height; i++){
//for (int j = 0; j < ipl->width; j++){//打印图像元素
//CvScalar csa = cvGet2D(ipl, i, j);
//printf("(%f,%f,%f) ", csa.val[0], csa.val[1], csa.val[2]);
//}
//printf("\n");
//}

////反转图像
//CvScalar csa;
//int height = ipl->height;
//int width = ipl->width;
//int step = ipl->widthStep;
//int nChannels = ipl->nChannels;
//for (int i = 0; i < height; i++){
//for (int j = 0; j < width; j++){
//for (int k = 0; k < nChannels; k++){
//ipl->imageData[i*step + j*nChannels + k] = 255 - ipl->imageData[i*step + j*nChannels + k];
//}
//}
//printf("\n");
//}
}

IplImage *ipl1 = cvCreateImage(CvSize(ipl->width, ipl->height), ipl->depth, ipl->nChannels);

//IplImage *ipl2 = cvCreateImage(CvSize(ipl->width, ipl->height), IPL_DEPTH_8U, 1);
//cvConvertImage(ipl, ipl1, CV_CVTIMG_FLIP);//垂直翻转
//cvCvtColor(ipl1, ipl2, CV_RGB2GRAY);//将彩色图像转换成灰度图像, 与cvConvertImage不能共用,单独使用,可以看出效果

//cvSobel(ipl, ipl1, 1, 1, 5);
cvSmooth(ipl, ipl1, CV_BLUR, 3, 3, 0);
cvLaplace(ipl, ipl1, 3);

cvShowImage(strWindowName.c_str(), ipl1);
cvSaveImage("E:\\123.bmp", ipl1);
cvResizeWindow(strWindowName.c_str(), ipl1->width, 200);
waitKey(5000);
cvDestroyWindow(strWindowName.c_str());
cvReleaseImage(&ipl);
cvReleaseImage(&ipl1);
//cvReleaseImage(&ipl2);
}

IplImage *ipl3 = cvCreateImageHeader(CvSize(100, 100), IPL_DEPTH_8U, 3);
ipl3 = cvInitImageHeader(ipl3, CvSize(100, 100), IPL_DEPTH_8U, 3);
cvReleaseImageHeader(&ipl3);

CvMemStorage * memstorge = cvCreateMemStorage(100);
char strMemStorage[100] = "123123123";
CvString strTemp = cvMemStorageAllocString(memstorge, strMemStorage, strlen(strMemStorage));
printf("%s\n", strTemp.ptr);
cvClearMemStorage(memstorge);

CvMemStorage *pMem = cvCreateMemStorage(0);
CvSeq *seq = cvCreateSeq(CV_32FC1, sizeof(CvSeq), sizeof(float), pMem);
cvSetSeqBlockSize(seq, 800);
cvClearMemStorage(pMem);
const char *pstr = cvErrorStr(0);
printf("%s\n", pstr);

版权声明:本文为博主原创文章,未经博主允许不得转载。

c++ opencv 入门的更多相关文章

  1. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  2. 【OpenCV入门指南】第一篇 安装OpenCV

    http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...

  3. 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨)  ...

  4. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  5. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...

  6. OpenCV入门教程

    OpenCV入门教程 作者:于仕琪 OpenCV入门教程.pdf

  7. opencv ,亮度调整【【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整

    http://blog.csdn.net/poem_qianmo/article/details/21479533 [OpenCV入门教程之六] 创建Trackbar & 图像对比度.亮度值调 ...

  8. OpenCV入门之获取验证码的单个字符(二)

      在文章 OpenCV入门之获取验证码的单个字符(字符切割)中,介绍了一类验证码的处理方法,该验证码如下: 该验证码的特点是字母之间的间隔较大,很容易就能提取出其中的单个字符.接下来,笔者将会介绍如 ...

  9. OpenCV 入门

    1.入门攻略[安装用] https://www.cnblogs.com/linshuhe/p/5764394.html 2.VS2017配置opencv教程(超详细!!!) https://blog. ...

  10. opencv入门指南(转载)

    转载链接:http://blog.csdn.net/morewindows/article/details/8426318 网上的总结的一些用openncv的库来做的事: 下面列出OpenCV入门指南 ...

随机推荐

  1. JDBC--Statement使用

    1.通过Statement实现类执行更新操作(INSERT.UPDATE .DELETE): --1)获取数据库连接Connection的对象: --2)通过Connection类的createSta ...

  2. 在Java中,为什么十六进制数0xFF取反之后对应的十进制数是-256呢?

    int number = 0xFF: 字面值是指在程序中无需变量保存,可直接表示为一个具体的数字或字符串的值. 0xFF是一个整数字面值,整数字面值的缺省类型是 int. 我们知道在Java中, in ...

  3. LR的深入理解资料汇集

    今天面试被问到LR的算法的梯度和正则化项,自己不太理解,所以找了一些相关资料,发现LR的算法在梯度下降,正则化和sigmoid函数方面都有很深的研究,期间也发现一些比较好的资料,记录一下. 这篇论文推 ...

  4. JuJu团队1月2号工作汇报

    JuJu团队1月2号工作汇报 JuJu   Scrum 团队成员 今日工作 剩余任务 困难 飞飞 -- 测试dataloader 无 婷婷 调试代码 提升acc 无 恩升 -- 测试dataloade ...

  5. 【剑指Offer】面试题34. 二叉树中和为某一值的路径

    题目 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / ...

  6. 关于netty配置的理解serverBootstrap.option和serverBootstrap.childOption

    The parameters that we set using ServerBootStrap.option apply to the ChannelConfig of a newly create ...

  7. Arch系统软件列表

    1. 安装统计 2. 安装列表 3. 安装说明 4. 作为依赖项的安装列表 5. 更正 mangaro使用减的方式安装系统.开箱即用的豪华版本,大部分人需要的都有了,同样包括个别用户不需要的,配置方面 ...

  8. 数学软件实训1-MATLAB程序设计及应用初步

    数学软件实训任务一 一 题目:MATLAB程序设计及应用初步 二 目的:掌握MATLAB程序设计的基本方法,会利用MATLAB程序设计思想编程处理一些简单问题. 三 要求: 1 掌握控制流的基本语法结 ...

  9. Python入门必学知识,30万年薪Python工程师带你学

    Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...

  10. 从零开始学C++(1 变量和基本类型)

    接下来的几篇文章介绍C++的基础知识点. C++是一种静态数据类型语言,它的类型检查发生在编译时.因此,编译器必须知道程序中每一个变量对应的数据类型. 数据类型是程序的基础:它告诉我们数据的意义以及我 ...