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入门指南 ...
随机推荐
- Vue--爬坑
1.路由变化页面数据不刷新问题: 出现这种情况是因为依赖路由的params参数获取写在created生命周期里面,因为相同路由二次甚至多次加载的关系 没有达到监听,退出页面再进入另一个文章页面并不会运 ...
- java、mysql、oracle、pgsql数据类型对应关系
看不清 请 Ctrl+鼠标滚轮 放大页面
- Day10 - C - Blow up the city HDU - 6604
Country A and B are at war. Country A needs to organize transport teams to deliver supplies toward s ...
- Python 网络编程之网络协议(未完待续)
一:网络编程从两大架构开始 1.网络开发的两大架构 c/s 架构 : client server B/S 架构 : Brower server (1)bs 和 cs 架构之间的关系? (2)哪一种 ...
- 51nod 1163:最高的奖励 优先队列
1163 最高的奖励 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成该 ...
- 基于RabbitMQ的MQTT协议及应用
MQTT的开源代码地址先贴在这里:https://github.com/mqtt/mqtt.github.io/wiki/servers MQTT定义: MQTT(Message Queuing Te ...
- C++面试常见问题——14内存管理
内存管理 内存管理由三种方式: 自动存储 静态存储 动态存储 自动存储 对于函数的形参.函数内部变量.和结构体变量等,编译器在函数运行过程中在栈中自动对其分配内存,调用结束后对其进行销毁.变量的声明周 ...
- webpack 命令 Module build failed (from ./node_modules/babel-loader/lib/index.js) 错误问题解决方案
在项目中运行的时候出现报错,错误为Module build failed (from ./node_modules/babel-loader/lib/index.js) 解决方案: 控制台输入 np ...
- Noip2018普及组初赛试题解题报告
解题思路: 一.单项选择题 (答案:DDDBBAAAABABBBB) 1.除D外,其余均为输入设备. 2.除D外,其余都等于(617)10 ,D选项为(619)10. 3.1MB=1024KB=102 ...
- python 关于异常处理 try...except... 的两个案例
输入若干个成绩,求所有成绩的平均分.每输入一个成绩后询问是否继续输入下一个成绩,回答“yes”就继续输入下一个成绩,回答“no”就停止输入成绩. numbers = [] #使用列表存放临时数据 wh ...