一、实验目的
完成opencv的配置,并实现对图像的阈值分割、图像取反和边缘提取
二、实验步骤
1.题目描述
使用opencv完成对图像picshiyan3.jpg的阈值分割、图像取反和边缘提取,
picshiyan3.jpg
达到下图的效果才算成功。如图:
使用xavis软件的代码是:
readimage(C:pic9 est.bmp,image);
showimage(image);
thresholdcovert(image,image1,fixthreshold,80);
showimage(image1);
pointinvert(image1,image2);
showimage(image2);
edgeget(image2,image3,contour);
showimage(image3);
2.实现过程
①安装opencv
首先安装opencv,点击电脑下方搜索cmd,找到命令提示符。
再打开命令提示符,输入pip install opencv-python进行安装
因为我已经安装过了所以是这样的
正常没安装过的是
然后等待安装完成。完成后再输入python,再输入import cv2,enter后再输入 exit()
安装就完成了。
②代码演示:
3.运行结果(效果)
4.问题及解决方法
问题1:我刚开始是打算在VS2010上安装opencv的,但他的配置很复杂,我按照网上的方法出现了问题,一直报错。例如opencv显示 已加载“C:WindowsSysWOW64 vinit.dll”,Cannot find or open the PDB file。我照着网上的解决方法没有成功。我放弃了。
解决方法:我换了一种语言,我打算在python上安装opencv,这个安装非常简单方便。
问题2:我使用edge_output = cv2.Canny(thresh2, 80, 150) cv2.imshow("canny edge", edge_output)这两句代码实现边缘提取但提取出来的效果不是我想要的,我明明是想在thresh2的基础上进行提取但提取出来的是canny edge这个样子。
解决方法:我将得到的图再进行图像反色,就可以得到我想要的了。
三、实验总结
条条大路通罗马,当我走一条走不通时,有两种情况,一种你努努力就可以冲过去,另一种就是没有人告诉你你就过不去。不要总觉得自己努努力就可以冲过去,我尝试冲不过去,我就再找一条路,不要死磕那一条路。也许你会发现换一条路可以更快到罗马。