opencv学习程序大集合Word文件下载.docx
- 文档编号:18441227
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:100
- 大小:136.69KB
opencv学习程序大集合Word文件下载.docx
《opencv学习程序大集合Word文件下载.docx》由会员分享,可在线阅读,更多相关《opencv学习程序大集合Word文件下载.docx(100页珍藏版)》请在冰豆网上搜索。
件t中D读¨
¢
入¨
?
图ª
像?
Matimg=imread(imagename);
//如¨
果?
读¨
失º
¡
ì
败ã
¹
if(img.empty())
{
fprintf(stderr,"
Cannotloadimage%s\n"
imagename);
return-1;
}
//显?
示º
imshow("
image"
img);
//此ä
函¡
¥
数º
y等Ì
待ä
y按ã
ä
键¨
,ê
按ã
盘¨
¬
任¨
意°
a键¨
就¨
ª
返¤
¦
Ì
回?
waitKey();
return0;
}
从文件中读入一幅图像,将之反色,然后显示出来
////////////////////////////////////////////////////////////////////////
//
//hello-world.cpp
//该?
程¨
序¨
°
从ä
一°
幅¤
´
将?
之?
反¤
色¦
然¨
后¨
显?
出?
来¤
.
stdafx.h>
stdlib.h>
stdio.h>
math.h>
cv.h>
highgui.h>
intmain(intargc,char*argv[])
IplImage*img=0;
intheight,width,step,channels;
uchar*data;
inti,j,k;
constchar*imagename=argc>
1?
argv[1]:
"
ha.jpg"
/*if(argc<
2){
printf("
Usage:
main<
image-file-name>
\n\7"
);
exit(0);
}
*/
//loadanimage
img=cvLoadImage(imagename);
if(!
img){
Couldnotloadimagefile:
%s\n"
argv[1]);
//gettheimagedata
height=img->
height;
width=img->
width;
step=img->
widthStep;
channels=img->
nChannels;
data=(uchar*)img->
imageData;
Processinga%dx%dimagewith%dchannels\n"
height,width,channels);
//createawindow
cvNamedWindow("
ao"
0);
cvMoveWindow("
100,100);
//inverttheimage
//相¨
¤
当Ì
À
于®
²
cvNot(img);
for(i=0;
i<
i++)for(j=0;
j<
j++)for(k=0;
k<
channels;
k++)
data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
//showtheimage
cvShowImage("
img);
//waitforakey
cvWaitKey(0);
//releasetheimage
cvReleaseImage(&
img);
单张RGB图片变成灰度图并保存
cv.h"
highgui.h"
IplImage*image;
IplImage*result;
image=cvLoadImage("
lena.jpg"
-1);
//注|意指针变量定要先初始化才能使用,否则崩溃
//灰度转换时通道一定¬
要设置正确
intchannel=1;
//image->
intdepth=image->
depth;
CvSizesz;
sz.width=image->
sz.height=image->
result=cvCreateImage(sz,depth,channel);
cvCvtColor(image,result,CV_BGR2GRAY);
original"
1);
image);
gray"
result);
cvSaveImage("
hlena.jpg"
image);
result);
cvDestroyWindow("
例2-2显示视频
cxcore.h>
voidmain()
example2"
0);
CvCapture*capture=cvCreateFileCapture("
晚ª
秋?
电Ì
影®
ã
&
lt;
gt;
同ª
名?
主¡
Â
题¬
a曲¨
--音°
悦?
台¬
..mp4"
IplImage*frame;
while
(1)
frame=cvQueryFrame(capture);
frame){break;
frame);
charc=cvWaitKey(33);
if(c==27){break;
cvReleaseCapture(&
capture);
cvDestroyWindow("
例2-3滚动条显示视频
intg_slider_position=0;
CvCapture*g_capture=NULL;
voidonTrackbarSlide(intpos)
cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);
intmain(intargc,char**argv)
cvNamedWindow("
Example3"
CV_WINDOW_AUTOSIZE);
g_capture=cvCreateFileCapture("
§
.mp4"
intframes=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);
if(frames!
=0)
cvCreateTrackbar("
Position"
"
&
g_slider_position,frames,onTrackbarSlide);
IplImage*frame;
frame=cvQueryFrame(g_capture);
}//Whileloop(asinExample2)capture&
showvideo…-
g_capture);
//Releasememoryanddestroywindow…-
return(0);
例2—4图像平滑处理
voidexample2_4(IplImage*image)
{
//Createsomewindowstoshowtheinput
//andoutputimagesin.
cvNamedWindow("
Example4-in"
);
Example4-out"
//Createawindowtoshowourinputimage
//
cvShowImage("
image);
//Createanimagetoholdthesmoothedoutput
//cvGetSize(image)当Ì
前¡
结¨
构1的Ì
大ä
小?
各¡
通ª
道Ì
每?
个?
素?
点Ì
的Ì
y据Y类¤
型¨
通ª
总Á
y
IplImage*out=cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
//Dothesmoothing
cvSmooth(image,out,CV_GAUSSIAN,3,3);
//CV_GAUSSIAN对?
进?
行D核?
为aparam1×
param2的Ì
高?
斯1卷¨
积y。
ê
//Showthesmoothedimageintheoutputwindow
out);
//Betidy
cvReleaseImage(&
out);
//Waitfortheusertohitakey,thencleanupthewindows
cvWaitKey(0);
cvDestroyWindow("
}
intmain(void)
IplImage*img=cvLoadImage("
example2_4(img);
return1;
例2-5使用cvPyDown()使图片长宽各缩小一半
#include"
IplImage*doPyrDown(IplImage*in)//intfilter=IPL_GAUSSIAN_5X5
assert(in->
width%2==0&
in->
height%2==0);
IplImage*out=cvCreateImage(
cvSize(in->
width/2,in->
height/2),
depth,
nChannels
cvPyrDown(in,out,CV_GAUSSIAN_5x5);
tu1"
1);
out);
wheadai.jpg"
out);
return(out);
};
intmain(intargc,char**argv)
IplImage*img=cvLoadImage("
doPyrDown(img);
img);
例2-6canny边缘检测将输出写入一个单通道(灰度级)图像
IplImage*doCanny(IplImage*in,doublelowThresh,doublehighThresh,intaperture)
if(in->
nChannels!
=1)
return(0);
IplImage*out=cvCreateImage(cvSize(in->
width,in->
height),IPL_DEPTH_8U,1);
cvCanny(in,out,lowThresh,highThresh,aperture);
hb"
奥ã
黛Â
丽¤
·
è
赫?
本À
.jpg"
IplImage*img=cvLoadImage("
(194).jpg"
doCanny(img,1,2.4,3);
例2-7图像处理中两次缩放和canny边缘检测例2-8通过每个独立阶段释放内存来简化2-7中图像处理
IplImage*out;
IplImage*doPyrDown(IplImage*in)
out=cvCreateImage(cvSize(in->
height/2),in->
depth,in->
nChannels);
IplImage*doCanny(IplImage*in,doublelowThresh,doublehighThresh,intaperture)
width,in->
height),IPL_DEPTH_8U,1);
out=doPyrDown(img);
out=doPyrDown(out);
out=doCanny(out,1,3,3);
kk"
haha.jpg"
cvReleaseImage(&
例2-9capture结构初始化后,从摄像设备读入图像并保存(或者从视频无区别)
conio.h"
intmain(){
CvCapture*capture=cvCaptureFromCAM(CV_CAP_ANY);
IplImage*image=NULL;
//*dst=NULL;
image=cvQueryFrame(capture);
CvSizesize=cvGetSize(image);
//dst=cvCreateImage(size,image->
depth,1);
doublefps=10;
CvVideoWriter*writer=cvCreateVideoWriter("
VideofromCAMERA.avi"
CV_FOURCC('
X'
'
V'
I'
D'
),fps,size,1);
ha"
1);
while((image=cvQueryFrame(capture))!
=NULL)
Enteredn"
//cvCvtColor(image,dst,CV_RGB2GRAY);
image);
cvWriteFrame(writer,image);
if((cvWaitKey(100))==27)
break;
cvReleaseVideoWriter(&
writer);
cvReleaseCapture(&
capture);
//cvReleaseImage(&
dst);
cvDestroyWindow("
例2-10彩色视频变灰度视频
//Convertavideotograyscale
//argv[1]:
inputvideofile
//argv[2]:
nameofnewoutputfile
intmain(intargc,char*argv[])
CvCapture*capture=0;
capture=cvCreateFileCapture("
wanqiu.avi"
if(!
capture)
return-1;
IplImage*bgr_frame=cvQueryFrame(capture);
//Initthevideoread
doublefps=cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
CvSizesize=cvSize(
(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT)
CvVideoWriter*writer=cvCreateVideoWriter("
hah.avi"
CV_FOURCC('
M'
J'
P'
G'
),fps,size);
IplImage*logpolar_frame=cvCreateImage(size,IPL_DEPTH_8U,3);
while((bgr_frame=cvQueryFrame(capture))!
cvLogP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- opencv 学习 程序 集合