• python OpenCV 宽度测量


    机器视觉第六次实验

    一、实验目的

    通过OpenCV第六次进行实验,对图片进行宽度测量。

    二、实验内容

    对图片进行宽度测量。

    三、实验过程

    我使用的是python语言+openCV对图片进行宽度测量的功能。

    1)读取图片

    使用imread()函数读取图片,使用imshow()函数显示图片,waitKey()函数含义为按下任意键继续;

    代码实例:

    img = cv2.imread("img1.png")

    cv2.imshow("img",img)

    cv2.waitKey(0)

    3.1读取的图片

    2)截取测量区域

    实例代码:

    #截取目标区域

    recimg = img[80:236, 120:238]

    cv2.imshow("img",recimg)

    cv2.waitKey()

     

    3.2截取的测量区域

    3)二值化处理

    使用threshold()函数进行图片反色:

    实例代码:

    #二值化处理

    ret, th = cv2.threshold(recimg, 80, 255, cv2.THRESH_BINARY_INV)

    cv2.imshow("img",th)

    cv2.waitKey()

     

    3.3二值化处理图

    4)边缘检测、图像反色

    输入的代码:

    # 边缘检测、图片反色

    img1 = cv2.Canny(recimg, 100, 200)

    img1 = 255 - cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)

    img2 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)

    img2 = cv2.cvtColor(255 - th, cv2.COLOR_RGB2GRAY)

    cv2.imshow("img",img2)

    cv2.waitKey()

     

    3.4反色后得到的图片

    5)边缘检测,框出物体的轮廓

    实例代码:

    contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

    cnt = contours[0]

    x, y, w, h = cv2.boundingRect(cnt)

    6)绘制直线

    实例代码:

    # 绘制直线

    cv2.line(img1, (x, y), (x + w, y), (0,255,0), 3, 5)

    cv2.line(img1, (x, y+h), (x + w, y+h), (0, 255, 0), 3, 5)

    img[80:236, 120:238] = img1

     

    7)图片上添加宽度大小

    实例代码:

    cv2.putText(img,''+str(w),(10,30),cv2.FONT_HERSHEY_COMPLEX,1,(0,0,255),1)

     

    3.5宽度测量图

     

    四、实验中的错误

    1)宽度测量的值需要写入图片,开始代码如下:

    cv2.putText(img,''+str(w),(10,30),font,1,(0,0,255),1)一直报如下错:

     

    4.1写入文字报错

    解决方案:将font 修改为以下代码:cv2.FONT_HERSHEY_COMPLEX

    4.2解决填入宽度问题

    2)我们需要一步步实验在图片上的最佳位置填入文字和宽度。

    五、实验总结

    学习了OpenCV的宽度测量,遇到了作业问题自己解决了,锻炼了自己的能力。

  • 相关阅读:
    面试汇总-待整理
    javaWeb2之Jsp
    Spring常用注解
    消费者、生产者模型
    网络知识之http请求
    设置Centos时间
    安装hive
    在Ubuntu上安装mysql(5.17.19)
    rabbitmq学习——主题路由
    rabbitmq学习——routingkey
  • 原文地址:https://www.cnblogs.com/CJR-QYF/p/12635060.html
Copyright © 2020-2023  润新知