《数字图像处理大作业报告.pdf》由会员分享,可在线阅读,更多相关《数字图像处理大作业报告.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数字图像处理数字图像处理实验报告实验报告实验选题:选题二组员:学号:班级:指导老师:实验日期:2019 年 5 月 22 日一、实验目的及原理一、实验目的及原理1.识别出芯片的引脚2.熟悉并掌握 opencv 的某些函数的功能和使用方法原理:通过滤波、形态学操作得到二值图,再在二值图中设置条件识别引脚部分。二、实现方案二、实现方案对图片滤波、调节阈值做边缘检测过滤掉一部分图片中干扰元素;然后通过膨胀、腐蚀操作 来减少引脚的空心部分;再通过findContours()函数找到引脚的边缘并得到轮廓的点集,设置特定的长宽比和矩形面积识别引脚部分。三、实验结果三、实验结果四、源码四、源码#includ
2、e#include#includeopencv2/highgui/highgui.hpp#includeopencv2/imgproc/imgproc.hppusing namespace std;using namespace cv;int main(int argv,char*argc)/载入图片Mat srtImag=imread(2.jpg);Mat G_blur=srtImag.clone();/降噪blur(G_blur,G_blur,Size(5,5);/imshow(降噪,G_blur);/Canny边缘检测Mat Canny_Imag=G_blur;Canny_Imag=Ca
3、nny_Imag 176;Canny(G_blur,Canny_Imag,300,50,3);/imshow(边缘检测,Canny_Imag);/膨胀Mat element=getStructuringElement(MORPH_RECT,Size(10,10);dilate(Canny_Imag,Canny_Imag,element);/imshow(膨胀,Canny_Imag);/腐蚀Mat element_1=getStructuringElement(MORPH_RECT,Size(11,11);erode(Canny_Imag,Canny_Imag,element_1);/imsho
4、w(腐蚀,Canny_Imag);/查找轮廓vectorvectorcontours;vectorhierarchy;findContours(Canny_Imag,contours,hierarchy,RETR_CCOMP,CHAIN_APPROX_SIMPLE);vectorvector contour_s(contours.size();/该数组共有contours.size()个轮廓的点集vector Rec_s(contours.size();/逼近多边形的点集数组/获得每个轮廓点集的逼近多边形的点集for(size_t i=0;i contours.size();i+)approx
5、PolyDP(Mat(contoursi),contour_si,3,false);/contour_s存储逼近多边形的点集Rec_si=boundingRect(contour_si);/Rec_s存储最小包围矩形的点集/筛选合适长宽比的矩形并将其画出来Mat result_Imag=srtImag.clone();for(size_t j=0;j 3.3&as_ra 20)rectangle(result_Imag,Rec_sj,Scalar(0,255,255),2,7);imshow(result,result_Imag);waitKey(0);return 0;五、总结五、总结经过这次实验,我熟悉了对blur()、Canny()、dilate()、erode()、findContours()、approxPolyDP()等函数的使用,了解了Rect 类的构成等。实验主要是调用函数解决问题,所以总体来说,选题二比较简单。