zoukankan      html  css  js  c++  java
  • 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的宽度测量,遇到了作业问题自己解决了,锻炼了自己的能力。

  • 相关阅读:
    自制编译器 青木峰郎 笔记 Ch5 基于JavaCC的解析器描述
    自制编译器 青木峰郎 笔记 Ch4 基于JavaCC的扫描器的描述
    自制编译器 青木峰郎 笔记 Ch3 词法分析的概要
    自制编译器 青木峰郎 笔记 Ch2 Cb和Cbc
    自制编译器 青木峰郎 笔记 Ch1 开始制作编译器
    POJ 1201 Intervals 差分约束,最短路,RE会报TLE 难度:1 差分约束背景知识需联想证明
    POJ 3276 The Cow Lexicon DP 难度: 0
    POJ 1276 Cash Machine DP 难度: 0
    Java大数练习
    HDU 4344-Mark the Rope-大数素因子分解
  • 原文地址:https://www.cnblogs.com/CJR-QYF/p/12635060.html
Copyright © 2011-2022 走看看