cv2小記 初始輪廓

2021-10-02 13:14:23 字數 1719 閱讀 5898

# coding: utf-8

# !/usr/bin/python

"""@file : opencv中的輪廓.py

@author : jiaming

@modify time: 2020/2/4 12:02

@contact :

@version : 1.0

@desciption : opencv 中的輪廓

理解什麼是輪廓,學習找輪廓,繪製輪廓

cv2.findcontours(), cv2.drawcontours()

影象、輪廓、輪廓的層析結構=cv2.findcontours(輸入影象、輪廓檢索模式、輪廓近似方法)

cv2.drawcontours(原始影象、輪廓(列表)、索引(-1: 繪製所有輪廓))

"""import os

import sys

import numpy as np

import cv2

import pprint

from matplotlib import pyplot as plt

rawpath = os.path.abspath(__file__)

currentfile = os.path.basename(sys.ar**[0]

)datapath = rawpath[

:rawpath.find(currentfile)

]+ r'static\\'

"""

輪廓可以簡單認為成將連續的點連在一起的曲線,具有相同的顏色或者灰度,輪廓在形狀分析和物體的檢測和識別

中很有用。

為了更加準確,要使用二值化影象。在尋找輪廓之前,要進行閾值化處理或者 canny 邊界檢測。

查詢輪廓的函式會修改原始影象。如果你在找到輪廓之後還想使用原始影象,你應該將原始影象儲存到其他變數中。

在 opencv 中,查詢輪廓就像在黑色背景中找白色物體。

"""im = cv2.imread(datapath +

'j.png'

)imgray = cv2.cvtcolor(im, cv2.color_bgr2gray)

ret, thresh = cv2.threshold(imgray,

200,

255, cv2.thresh_binary_inv)

cv2.imshow(

'img1'

, thresh)

contours, hierarchy = cv2.findcontours(

# 以上設定是較為通用的用法,後面會講到一些具體的設定引數

# 這一步會把thresh變為輪廓圖,即與img相同;然而不斷試驗並沒發現thresh發生任何變化

# bgr

cv2.drawcontours(im, contours,-1

,(0,

0,255),1

)# 這一步會把輪廓線畫在im中

cv2.imshow(

'img'

, im)

cv2.waitkey(0)

print

(len

(contours)

)# 4 個輪廓

cv2小記 輪廓特徵

coding utf 8 usr bin python file 輪廓特徵.py author jiaming modify time 2020 2 4 12 49 contact version 1.0 desciption 查詢輪廓的不同特徵,例如面積,周長,重心,邊界框。import os i...

cv2作弊手冊

img cv2.imread cv2.imshow show img cv2.waitkey cv2.destroyallwindows 視窗只會在呼叫waitkey 函式時才會更新 數學表示 所有的波形都可以由一系列簡單且頻率不同的正弦曲線疊加得到。影象由許多頻率組成,分離不同的頻率來理解影象和提...

安裝CV2,安裝opencv

幾經嘗試,發現並沒有所謂的 cv2 包,需要安裝的是opencv這個包,安裝後就可以import cv2了。方法如下 直接用pip安裝,按windows r 輸入cmd,在cmd環境下輸入 pip install opencv 如果安裝了conda的,按windows r 輸入cmd,在cmd環境下...