首页 > 编程知识 正文

邻接矩阵怎么求,opencv图像识别实例

时间:2023-05-05 05:02:53 阅读:110441 作者:247

#include 'cv.h '

#include 'highgui.h '

#包含

#包含

//#include 'otsu.h '

intmain(intargc,char** argv ) ) ) ) ) ) ) )。

{

IplImage *src、*gray、*bw、*dst;

cvmemstorage * storage=cvcreatememstorage (0;

CvSeq* contour=0;

char* filename=argc==2? argv[1]:'5.jpg ';

if (! filename )

printf(can ) topenthefile:%d(n ),filename );

src=cv loadimage (d :\ xsz\ debug\图片\3.jpg ',1 );

cvnamedwindow('image ',1 );

CVShowimage(image )、src;

gray=cvcreateimage (cv size (src-width,src-height ),src-depth,1 );

cvcvtcolor(src,gray,CV_BGR2GRAY );

int hei,wid;

hei=gray-height; //请注意这里是灰色的。 在otsu上使用hei,wid是在otsu.h上全局定义的;

wid=gray-width;

printf (图像高度为(d,宽度为) d(n ) n )、hei、wid );

cvnamedwindow('image2 ',1 );

CVShowimage(image2 )、gray );

bw=cvcreateimage(cvgetsize(src ),IPL_DEPTH_8U,1 );

cvThreshold(gray,bw,128,255,CV_THRESH_BINARY_INV );

cvnamedwindow('image4',1 );

CVShowimage(image4)、bw;

//WB=cvcloneimage(bw;

//cvnot(bw,wb ); 仅当目标区域为黑色背景时,翻转该区域。

DST=cvcloneimage(src;

cvfindcontours(bw,storage,contour,sizeof ) contour )、CV_RETR_TREE、CV_CHAIN_APPROX_SIMPLE;

for (; contour=0; contour=contour-h_next )

{ cv box 2d rect=cvminarearect2(contour,storage );

CvPoint2D32f rect_pts0[4];

cvboxpoints(rect,rect_pts0);

cvPolyLine的点集输入类型为CvPoint**

//因此将CvPoint2D32f型的rect_pts0转换为CvPoint型的rect_pts

//给出相应的指针*pt

int npts=4,k=0;

int aaa=0,bbb=0;

CvPoint rect_pts[4],*pt=rect_pts;

printf (连通区域的最小外接矩形顶点坐标分别为:(n );

for(intI=0; i4; I )

{

rect _ pts [ I ]=cvpointfrom 32f (rect _ pts0[ I ];

printf(%d%d(n ),rect_pts[i].x,rect_pts[i].y );

AAA=(int ) sqrt ) ) pow ) rect_pts[0].x-rect_pts[1].x ),2 ) pow ) rect_pts[0].y-rect_pts

bbb=(int ) sqrt ) ) pow ) rect_pts[0].x-rect_pts[3].x ),2 ) pow ) rect_pts[0].y-rect_pts

AAA

{

k=aaa;

aaa=bbb;

bbb=k;

}

}

printf ('最小外接矩形的长度为%d,宽度为%d。 nn ',aaa,bbb;

//Chang=rect _ pts [0]-rect _ pts [3];

//kuan=rect_pts[0]-rect_pts[1];

//printf (最小外接矩形的长度为(d,宽度为) d(n )、chang、kuan );

//画盒子

cvpolyline(dst,pt,npts,1,1,cv_RGB ) 255,0,0 ),1 );

}

cvnamedwindow('image5',1 );

CVShowimage(image5)、dst;

cvwaitkey(0; //注意这句话的放置位置,如果放错了的话。

cvdestroywindow('image );

vdestroywindow(image2 );

vdestroywindow(image4);

vdestroywindow(image5);

cvreleaseimage(src );

cvreleaseimage(gray;

cvreleaseimage(bw;

cvreleaseimage(dst;

返回0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。