opencv学习程序大集合Word文档格式.docx

上传人:b****5 文档编号:21141737 上传时间:2023-01-27 格式:DOCX 页数:100 大小:136.95KB
下载 相关 举报
opencv学习程序大集合Word文档格式.docx_第1页
第1页 / 共100页
opencv学习程序大集合Word文档格式.docx_第2页
第2页 / 共100页
opencv学习程序大集合Word文档格式.docx_第3页
第3页 / 共100页
opencv学习程序大集合Word文档格式.docx_第4页
第4页 / 共100页
opencv学习程序大集合Word文档格式.docx_第5页
第5页 / 共100页
点击查看更多>>
下载资源
资源描述

opencv学习程序大集合Word文档格式.docx

《opencv学习程序大集合Word文档格式.docx》由会员分享,可在线阅读,更多相关《opencv学习程序大集合Word文档格式.docx(100页珍藏版)》请在冰豆网上搜索。

opencv学习程序大集合Word文档格式.docx

文?

件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"

例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))!

cvL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1