• <small id='cdlTU'></small><noframes id='cdlTU'>

    <tfoot id='cdlTU'></tfoot>
  • <i id='cdlTU'><tr id='cdlTU'><dt id='cdlTU'><q id='cdlTU'><span id='cdlTU'><b id='cdlTU'><form id='cdlTU'><ins id='cdlTU'></ins><ul id='cdlTU'></ul><sub id='cdlTU'></sub></form><legend id='cdlTU'></legend><bdo id='cdlTU'><pre id='cdlTU'><center id='cdlTU'></center></pre></bdo></b><th id='cdlTU'></th></span></q></dt></tr></i><div id='cdlTU'><tfoot id='cdlTU'></tfoot><dl id='cdlTU'><fieldset id='cdlTU'></fieldset></dl></div>

    <legend id='cdlTU'><style id='cdlTU'><dir id='cdlTU'><q id='cdlTU'></q></dir></style></legend>

    • <bdo id='cdlTU'></bdo><ul id='cdlTU'></ul>
      1. opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

        时间:2023-12-18
          <tbody id='swKVl'></tbody>
        • <legend id='swKVl'><style id='swKVl'><dir id='swKVl'><q id='swKVl'></q></dir></style></legend>

            <bdo id='swKVl'></bdo><ul id='swKVl'></ul>
              <tfoot id='swKVl'></tfoot>

              1. <i id='swKVl'><tr id='swKVl'><dt id='swKVl'><q id='swKVl'><span id='swKVl'><b id='swKVl'><form id='swKVl'><ins id='swKVl'></ins><ul id='swKVl'></ul><sub id='swKVl'></sub></form><legend id='swKVl'></legend><bdo id='swKVl'><pre id='swKVl'><center id='swKVl'></center></pre></bdo></b><th id='swKVl'></th></span></q></dt></tr></i><div id='swKVl'><tfoot id='swKVl'></tfoot><dl id='swKVl'><fieldset id='swKVl'></fieldset></dl></div>

                <small id='swKVl'></small><noframes id='swKVl'>

                • 下面是详细的讲解“opencv python 图像轮廓/检测轮廓/绘制轮廓的方法”的完整攻略。

                  检测轮廓

                  检测图像轮廓的方法主要是通过cv2.findContours函数实现,该函数接收三个参数,分别是输入图像、轮廓检索方式以及轮廓近似方法。返回值是包含检测到的轮廓信息的列表。以下是检测轮廓的基本步骤:

                  1. 读入一张图片并转化为灰度图。
                  import cv2
                  import numpy as np
                  img = cv2.imread('image.jpg')
                  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
                  
                  1. 进行二值化处理。
                  ret, thresh = cv2.threshold(gray, 127, 255, 0)
                  
                  1. 进行轮廓检测。
                  image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
                  

                  其中,轮廓检测的方式有以下几种:
                  - RETR_EXTERNAL 只检测最外层轮廓
                  - RETR_LIST 检测所有轮廓,但不建立轮廓层次结构
                  - RETR_CCOMP 检测所有轮廓,并将轮廓分层,每个轮廓存储到相应的层数中
                  - RETR_TREE 检测所有轮廓,并重建轮廓之间的层次关系

                  轮廓检测的近似方法有以下几种:
                  - CHAIN_APPROX_NONE 以折线段方式存储轮廓,包括所有的轮廓点
                  - CHAIN_APPROX_SIMPLE 压缩水平、垂直和斜率等方向的冗余点,只保留该方向的重点

                  绘制轮廓

                  绘制轮廓的方法是通过cv2.drawContours函数实现,该函数接收三个参数,分别是绘制轮廓的图像、要绘制的轮廓信息以及绘制的轮廓索引。以下是绘制轮廓的基本步骤:

                  1. 在检测轮廓的基础上,创建一个输出图像
                  img = cv2.imread('image.jpg')
                  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
                  ret,thresh = cv2.threshold(gray,127,255,0)
                  image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
                  drawing = np.zeros(img.shape,np.uint8)  # 创建一个黑色背景的图像
                  
                  1. 绘制轮廓
                  cv2.drawContours(drawing,contours,-1,(0,255,0),2)
                  cv2.imshow('output', drawing)
                  

                  注意,第四个参数指定绘制轮廓的颜色,其中(0,255,0)代表纯绿色,(0,0,255)代表纯蓝色,(255,0,0)代表纯红色,(255,255,255)代表白色,(0,0,0)代表黑色等。

                  示例说明

                  以下是两个例子,展示如何检测和绘制轮廓。

                  示例一:检测并绘制单个轮廓

                  import cv2
                  import numpy as np
                  
                  img = cv2.imread('image.jpg')
                  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
                  ret,thresh = cv2.threshold(gray,127,255,0)
                  image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
                  
                  # 绘制单个轮廓
                  drawing = np.zeros(img.shape,np.uint8)
                  cv2.drawContours(drawing,contours,0,(0,255,0),2)
                  cv2.imshow('output', drawing)
                  

                  示例二:检测并绘制所有轮廓

                  import cv2
                  import numpy as np
                  
                  img = cv2.imread('image.jpg')
                  gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
                  ret,thresh = cv2.threshold(gray,127,255,0)
                  image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
                  
                  # 绘制所有轮廓
                  drawing = np.zeros(img.shape,np.uint8)
                  for i in range(len(contours)):
                      cv2.drawContours(drawing,contours,i,(0,255,0),2)
                  cv2.imshow('output', drawing)
                  

                  以上两个示例演示了如何检测并绘制单个轮廓和所有轮廓。通过了解其中的基本步骤,可以根据实际需求自由调整参数和细节,实现更加复杂的图像轮廓检测和绘制操作。

                  上一篇:python 实现的车牌识别项目 下一篇:在python下读取并展示raw格式的图片实例

                  相关文章

                • <tfoot id='rhqNr'></tfoot>

                    <small id='rhqNr'></small><noframes id='rhqNr'>

                    1. <i id='rhqNr'><tr id='rhqNr'><dt id='rhqNr'><q id='rhqNr'><span id='rhqNr'><b id='rhqNr'><form id='rhqNr'><ins id='rhqNr'></ins><ul id='rhqNr'></ul><sub id='rhqNr'></sub></form><legend id='rhqNr'></legend><bdo id='rhqNr'><pre id='rhqNr'><center id='rhqNr'></center></pre></bdo></b><th id='rhqNr'></th></span></q></dt></tr></i><div id='rhqNr'><tfoot id='rhqNr'></tfoot><dl id='rhqNr'><fieldset id='rhqNr'></fieldset></dl></div>
                    2. <legend id='rhqNr'><style id='rhqNr'><dir id='rhqNr'><q id='rhqNr'></q></dir></style></legend>

                        <bdo id='rhqNr'></bdo><ul id='rhqNr'></ul>