OpenCV图像分割_第1页
OpenCV图像分割_第2页
OpenCV图像分割_第3页
OpenCV图像分割_第4页
OpenCV图像分割_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验概述【实验目的及要求】图像分割【实验原理】 图像分割 【实验环境】Visual C+ 6.0 Xvid实验内容【实验方案设计】 先根据要求查询资料 通过上网查到需要的信息 然后整合做出计划性的步骤   【实验过程】Contour:Houghcircles:Houghlines:3. 源程序Contour:#include "cv.h"#include "highgui.h"int main( int argc, char* argv ) IplImage* src; / 第一条命令行参数确定

2、了图像的文件名。 if( argc = 2 && (src=cvLoadImage(argv1, 0)!= 0) IplImage* dst = cvCreateImage( cvGetSize(src), 8, 3 ); CvMemStorage* storage = cvCreateMemStorage(0); CvSeq* contour = 0; cvThreshold( src, src, 1, 255, CV_THRESH_BINARY ); cvNamedWindow( "Source", 1 ); cvShowImage( "Sou

3、rce", src ); cvFindContours( src, storage, &contour, sizeof(CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE ); cvZero( dst ); for( ; contour != 0; contour = contour->h_next ) CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 ); /* 用1替代 CV_FILLED 所指示的轮廓外形 */ / cvDr

4、awContours( dst, contour, color, color, -1, CV_FILLED, 8 ); cvDrawContours( dst, contour, color, color, -1, 1, 8 ); cvNamedWindow( "Components", 1 ); cvShowImage( "Components", dst ); cvWaitKey(0); Houghcircles:#include <cv.h>#include <highgui.h>#include <math.h>

5、;int main(int argc, char* argv) IplImage* img; if( argc = 2 && (img=cvLoadImage(argv1, 1)!= 0) IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 ); CvMemStorage* storage = cvCreateMemStorage(0); cvCvtColor( img, gray, CV_BGR2GRAY ); cvSmooth( gray, gray, CV_GAUSSIAN, 9, 9 ); / smooth it,

6、otherwise a lot of false circles may be detected CvSeq* circles = cvHoughCircles( gray, storage, CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100 ); int i; for( i = 0; i < circles->total; i+ ) float* p = (float*)cvGetSeqElem( circles, i ); cvCircle( img, cvPoint(cvRound(p0),cvRound(p1), 3, CV

7、_RGB(0,255,0), -1, 8, 0 ); cvCircle( img, cvPoint(cvRound(p0),cvRound(p1), cvRound(p2), CV_RGB(255,0,0), 3, 8, 0 ); cvNamedWindow( "circles", 1 ); cvShowImage( "circles", img ); cvWaitKey(0); return 0;Houghlines:/* 这是一个命令行程序,以图像作为文件输入变量 编译时选择“#if 1”或“#if 0”,可以使用标准和概率HOUGH变换两种方法 *

8、/#include <cv.h>#include <highgui.h>#include <math.h>int main(int argc, char* argv) IplImage* src; if( argc = 2 && (src=cvLoadImage(argv1, 0)!= 0) IplImage* dst = cvCreateImage( cvGetSize(src), 8, 1 ); IplImage* color_dst = cvCreateImage( cvGetSize(src), 8, 3 ); CvMemStorag

9、e* storage = cvCreateMemStorage(0); CvSeq* lines = 0; int i; cvCanny( src, dst, 50, 200, 3 ); cvCvtColor( dst, color_dst, CV_GRAY2BGR );#if 1 lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 150, 0, 0 ); for( i = 0; i < lines->total; i+ ) float* line = (float*)cvGetSeqElem

10、(lines,i); float rho = line0; float theta = line1; CvPoint pt1, pt2; double a = cos(theta), b = sin(theta); if( fabs(a) < 0.001 ) pt1.x = pt2.x = cvRound(rho); pt1.y = 0; pt2.y = color_dst->height; else if( fabs(b) < 0.001 ) pt1.y = pt2.y = cvRound(rho); pt1.x = 0; pt2.x = color_dst->wid

11、th; else pt1.x = 0; pt1.y = cvRound(rho/b); pt2.x = cvRound(rho/a); pt2.y = 0; cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 1, 8 ); #else lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 280, 30, 10 ); for( i = 0; i < lines->total; i+ ) CvPoint* line = (CvPoint*)cvGe

12、tSeqElem(lines,i); cvLine( color_dst, line0, line1, CV_RGB(255,0,0), 1, 8,0 ); #endif cvNamedWindow( "Source", 1 ); cvShowImage( "Source", src ); cvNamedWindow( "Hough", 1 ); cvShowImage( "Hough", color_dst ); cvWaitKey(0); 【结果】1 编写程序Contour:Houghcircles:Hough

13、lines:2 图片Contour:Houghcircles:Houghlines:小结图像分割图像分割是图像处理这门学科中的基础难题,,图像分割是图像处理领域和计算机视觉中的基本而关键的问题。其目的就是将人们感兴趣的目标从图像背景中提取出来,为后续的分类、跟踪、识别、处理等提供基础。由于图像分割的重要性,对图像研究就显得格外重要。指导教师评语及成绩评语:    成绩:           指导教师签名:            

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论