c++ opencv 入门
//类型定义
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 入门的更多相关文章
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置
图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...
- 【OpenCV入门指南】第一篇 安装OpenCV
http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
- OpenCV入门学习笔记
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...
- OpenCV入门教程
OpenCV入门教程 作者:于仕琪 OpenCV入门教程.pdf
- opencv ,亮度调整【【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整
http://blog.csdn.net/poem_qianmo/article/details/21479533 [OpenCV入门教程之六] 创建Trackbar & 图像对比度.亮度值调 ...
- OpenCV入门之获取验证码的单个字符(二)
在文章 OpenCV入门之获取验证码的单个字符(字符切割)中,介绍了一类验证码的处理方法,该验证码如下: 该验证码的特点是字母之间的间隔较大,很容易就能提取出其中的单个字符.接下来,笔者将会介绍如 ...
- OpenCV 入门
1.入门攻略[安装用] https://www.cnblogs.com/linshuhe/p/5764394.html 2.VS2017配置opencv教程(超详细!!!) https://blog. ...
- opencv入门指南(转载)
转载链接:http://blog.csdn.net/morewindows/article/details/8426318 网上的总结的一些用openncv的库来做的事: 下面列出OpenCV入门指南 ...
随机推荐
- Day3-L-Cup HDU2289
The WHU ACM Team has a big cup, with which every member drinks water. Now, we know the volume of the ...
- Myeclipse 安装时候android adt, android sdk常见问题
离线版adt安装 可以随意百度adt下载 安装时候注意断网模式,否则会连接到服务器耗费很长时间:如果安装报错,可能是adt与Myeclipse版本不匹配,如我用的是Myeclipse8.6,安装AD ...
- 前端学习笔记系列一:6 一种新的css预编译器stylus
stylus是 CSS 的预处理框架.CSS 预处理,顾名思义,预先处理 CSS.那 stylus 咋预先处理呢?stylus 给 CSS 添加了可编程的特性,也就是说,在 stylus 中可以使用变 ...
- GSON使用笔记(3) -- 如何反序列化出List
GSON使用笔记(3) -- 如何反序列化出List 时间 2014-06-26 17:57:06 CSDN博客原文 http://blog.csdn.net/zxhoo/article/deta ...
- arm linux 移植 gdb/gdbserver
背景 调试工具gdb的使用对于嵌入式Linux开发人员来说是一项不可少的技能. 目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机 ...
- PAT (Advanced Level) 1140~1143:1140模拟 1141模拟 1142暴力 1143 BST+LCA
1140 Look-and-say Sequence(20 分) 题意:观察序列D, D1, D111, D113, D11231, D112213111, ...,显然后一个串是对前一个串每一小段连 ...
- maven知识结构笔记
1.什么是maven Maven 翻译为"专家"."内行",是 Apache 下的一个纯 Java 开发的开源项目.基于项目对象模型(缩写:POM)概念,Mav ...
- 4 GC算法与种类
- 修正png
这是修正+取MD5的方法 function MD5FileTextPng(filename: AnsiString): AnsiString; var buf: ..MAX_PATH - ] of C ...
- c# 外挂操作(内存操作)(内存读写取窗口句柄移动窗口取模块地址)工具类
来源于网上 参考 https://www.cnblogs.com/fuhua/p/5877781.html 等众多文章 详情取看我第二个例子封装功能较多 https://www.cnblogs.co ...