OpenCV中的样例怎么用?
我是初学opencv的,看了介绍后知道软件自带有一些样例,就是simples里面的例子我可以直接拿来编程用吗?高手指点啊...
我是初学opencv的,看了介绍后知道软件自带有一些样例,就是simples里面的例子我可以直接拿来编程用吗?高手指点啊
展开
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐于2016-09-08 · 知道合伙人互联网行家
关注
展开全部
使用实例如下:
#include "stdio.h"
#include "cv.h"
#include "highgui.h"
#include <iostream>
#include <string>
void sum_rgb( IplImage* src, IplImage* dst)
{
using namespace std;
IplImage* r=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
IplImage* g=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
IplImage* b=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
//
cout<<src->depth<<endl;
//
cout<<src->nChannels<<endl;
//
cout<<r->depth<<endl;
//
cout<<r->nChannels<<endl;
cvSplit(src,r,g,b,NULL);
IplImage* s=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
cvAddWeighted(r,1./3. ,g, 1./3. ,0.0, s);
// cvNamedWindow("rs",CV_WINDOW_AUTOSIZE);
// cvShowImage("rs",s);
// cvWaitKey(1000);
cvAddWeighted(s, 2./3., b, 1./3.,
0.0,s);
cvThreshold(s,dst,100,255,CV_THRESH_BINARY
);
// cvNamedWindow("s",CV_WINDOW_AUTOSIZE);
// cvShowImage("s",s);
// cvWaitKey(1000);
cvReleaseImage(&r);
cvReleaseImage(&g);
cvReleaseImage(&b);
cvReleaseImage(&s);
}
int main(int argc,char** argv)
{
using namespace std;
cvNamedWindow(argv[1],1);
cout<<"argv[1]中的内容:
"<<argv[1]<<endl;
// 变量的具体寻出位置和名称,即变量的出入值
cout<<"argv中的内容:
"<<argv<<endl;//变量的名字或者路径不能太长,否则argv空间装不下,
//导致程序报错
IplImage* src=cvLoadImage(argv[1]);
IplImage*
dst=cvCreateImage(cvGetSize(src),src->depth,1);
sum_rgb(src,dst);
cvShowImage(argv[1],dst);
while(1) {
if(cvWaitKey(10)&0x7f==27) break;}
cvDestroyAllWindows();
cvReleaseImage(&src);
cvReleaseImage(&dst);
}
#include "stdio.h"
#include "cv.h"
#include "highgui.h"
#include <iostream>
#include <string>
void sum_rgb( IplImage* src, IplImage* dst)
{
using namespace std;
IplImage* r=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
IplImage* g=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
IplImage* b=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
//
cout<<src->depth<<endl;
//
cout<<src->nChannels<<endl;
//
cout<<r->depth<<endl;
//
cout<<r->nChannels<<endl;
cvSplit(src,r,g,b,NULL);
IplImage* s=cvCreateImage(cvGetSize(src),
IPL_DEPTH_8U,1);
cvAddWeighted(r,1./3. ,g, 1./3. ,0.0, s);
// cvNamedWindow("rs",CV_WINDOW_AUTOSIZE);
// cvShowImage("rs",s);
// cvWaitKey(1000);
cvAddWeighted(s, 2./3., b, 1./3.,
0.0,s);
cvThreshold(s,dst,100,255,CV_THRESH_BINARY
);
// cvNamedWindow("s",CV_WINDOW_AUTOSIZE);
// cvShowImage("s",s);
// cvWaitKey(1000);
cvReleaseImage(&r);
cvReleaseImage(&g);
cvReleaseImage(&b);
cvReleaseImage(&s);
}
int main(int argc,char** argv)
{
using namespace std;
cvNamedWindow(argv[1],1);
cout<<"argv[1]中的内容:
"<<argv[1]<<endl;
// 变量的具体寻出位置和名称,即变量的出入值
cout<<"argv中的内容:
"<<argv<<endl;//变量的名字或者路径不能太长,否则argv空间装不下,
//导致程序报错
IplImage* src=cvLoadImage(argv[1]);
IplImage*
dst=cvCreateImage(cvGetSize(src),src->depth,1);
sum_rgb(src,dst);
cvShowImage(argv[1],dst);
while(1) {
if(cvWaitKey(10)&0x7f==27) break;}
cvDestroyAllWindows();
cvReleaseImage(&src);
cvReleaseImage(&dst);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是用在VC上的例子,要跟VC配置好才能编译
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以啊,就是你要先看明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询