久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

邊緣和輪廓檢測(cè)——計(jì)算機(jī)視覺的應(yīng)用

 taotao_2016 2021-10-06
計(jì)算機(jī)視覺的重點(diǎn)是從計(jì)算機(jī)中的視頻和圖像中提取有意義的信息,。在本文中,我們將從初學(xué)者開始探索一個(gè)使用 OpenCV 的出色計(jì)算機(jī)視覺項(xiàng)目,。
其標(biāo)題是“使用計(jì)算機(jī)視覺進(jìn)行邊緣和輪廓檢測(cè)”,。對(duì)于此項(xiàng)目,,你還將看到描述、源代碼和圖像分類,。

邊緣檢測(cè)

邊緣檢測(cè)是一種用于定位圖像中對(duì)象邊界的圖像處理技術(shù),。最流行和廣泛使用的算法之一是 Canny 邊緣檢測(cè)器。
Canny 邊緣檢測(cè)器是一種立足點(diǎn)檢測(cè)算子,,它使用多階段算法來檢測(cè)圖像中的各種邊緣,。
主要階段是:
  1. 使用高斯模糊算法,過濾掉圖像,。
  2. 在 Sobel 濾波器的幫助下,,找出邊緣的強(qiáng)度和方向。
  3. 通過應(yīng)用非極大值抑制來隔離更強(qiáng)的邊緣并將它們細(xì)化為一條像素寬的線,。
  4. 使用滯后來隔離最簡(jiǎn)單的邊緣。
下面我們安裝 OpenCV :
pip3 install opencv-python matplotlib numpy
打開一個(gè) Python 文件并按照以下步驟操作:
import cv2
import numpy as np
import matplotlib.pyplot as plt
現(xiàn)在為了檢測(cè)它的邊緣,,我們必須讀取圖像:
# read the image
image = cv2.imread('little_flower.jpg')
首先,,我們必須將圖像轉(zhuǎn)換為灰度,然后,,我們可以繼續(xù)將圖像繞過 Canny 邊緣檢測(cè)器,。
我們來看一下:
# convert it to grayscale
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
讓我們來看看它:
# show the grayscale image
plt.imshow(gray, cmap='gray')
plt.show()
圖片
在 Canny 算法的幫助下,我們必須標(biāo)記作為輸入的圖像中的邊緣,。
輸入圖像首先傳遞給 cv2.Canny() 函數(shù),,然后用于邊緣檢測(cè)。
# perform the canny edge detector to detect image edges
edges = cv2.Canny(gray, threshold1=30, threshold2=100)
閾值 1 和閾值 2 之間的最小值用于邊緣鏈接,。最重要的值用于尋找強(qiáng)邊緣的初始段,。
讓我們看看結(jié)果圖像:
有趣的是,嘗試微調(diào)邊緣值,,看看你是否會(huì)讓它變得更好,。
如果你想使用實(shí)時(shí)攝像頭,這里是完整的代碼:
import NumPy as np
import cv2
cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    edges = cv2.Canny(gray, 30100)
    cv2.imshow('edges', edges)
    cv2.imshow('gray', gray)
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
檢測(cè)邊緣的最終目的是捕捉重要事件并在行星屬性內(nèi)執(zhí)行所需的更改,。它是圖像處理,、圖像模式識(shí)別和計(jì)算機(jī)視覺技術(shù)的基本步驟之一。

輪廓檢測(cè)

一個(gè)輪廓可以描述為一條曲線,,將所有具有相同顏色或強(qiáng)度的連續(xù)點(diǎn)組合在一起,。基本上,,它們顯示圖片中包含的對(duì)象的形狀,。輪廓檢測(cè)可能是一種用于形狀分析和對(duì)象檢測(cè)和識(shí)別的有用技術(shù)。
輪廓檢測(cè)并不是圖像分割的唯一算法,,還有很多其他算法,,例如目前最先進(jìn)的語義分割,、霍夫變換和 K-Means 分割。
為了獲得更好的準(zhǔn)確性,,我們將遵循以下整個(gè)流程來成功檢測(cè)圖像中的輪廓:
  • 輸入圖像的標(biāo)準(zhǔn)化是它應(yīng)該始終是二進(jìn)制形式,。這就是為什么我們需要將其轉(zhuǎn)換為二進(jìn)制格式。
  • 用于查找輪廓的 OpenCV 函數(shù)是 findContours(),。
  • 最后,,我們必須繪制這些輪廓來顯示圖像。
好吧,,讓我們開始吧,。
首先,讓我們?yōu)檫@個(gè)項(xiàng)目安裝所有必需的依賴項(xiàng):
pip3 install matplotlib opencv-python
在這里,,我們導(dǎo)入所需的模塊:
import cv2
import matplotlib.pyplot as plt
讓我們加載本教程中使用的圖像:
圖片
# read the image
image = cv2.imread('thumbs_up_down.jpg')
將其轉(zhuǎn)換為 RGB,,然后轉(zhuǎn)換為灰度:
# convert to RGB
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# convert to grayscale
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
正如本教程前面提到的,我們要?jiǎng)?chuàng)建一個(gè)二值圖像,,這表明圖像的每個(gè)像素要么是黑色的,,要么是白色的。
你可以將其進(jìn)行比較,,就像查找輪廓與檢測(cè)黑板上的白色物體更相似,。我們要找的物體是白色的,所以黑板需要是純黑色的,。
# create a binary thresholded image
_, binary = cv2.threshold(gray, 225255, cv2.THRESH_BINARY_INV)
# show it
plt.imshow(binary, cmap='gray')
plt.show()
通過禁用像素(即將其設(shè)置為0)和啟用像素(即將其設(shè)置為225),,創(chuàng)建二進(jìn)制圖像。以下是輸出圖像:
圖片
現(xiàn)在,,對(duì)于 OpenCV 來說,,這通常很容易檢測(cè)輪廓:
# find the contours from the thresholded image
contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# draw all contours
image = cv2.drawContours(image, contours, -1, (02550), 2)
上述代碼很容易找到二值圖像中的輪廓,最后借助粗綠線將它們輸出到圖像中,,讓我們展示一下:
# show the image with the drawn contours
plt.imshow(image)
plt.show()
圖片
輸出圖像:
為了在不同的世界圖像上獲得良好的結(jié)果,,你需要調(diào)整閾值或執(zhí)行邊緣檢測(cè)。例如,,對(duì)于煎餅圖像,,我將邊緣減少到 127,結(jié)果如下:
圖片

輪廓檢測(cè)和邊緣檢測(cè)的區(qū)別

輪廓檢測(cè)的目標(biāo)是確定閉合物體的形狀,,特別是因?yàn)閷?duì)于具有相同顏色強(qiáng)度的連續(xù)點(diǎn),,尋找輪廓的方法是確定的,而邊緣檢測(cè)是通過檢測(cè)顏色強(qiáng)度內(nèi)的變化來進(jìn)行的,。對(duì)整個(gè)圖像進(jìn)行邊緣檢測(cè),,而僅對(duì)圖像內(nèi)的對(duì)象進(jìn)行輪廓檢測(cè)。

結(jié)論

這個(gè)項(xiàng)目是初學(xué)者級(jí)別的,,面向數(shù)據(jù)科學(xué)愛好者,。本文旨在讓你熟悉最簡(jiǎn)單的計(jì)算機(jī)視覺項(xiàng)目,,以增強(qiáng)你在計(jì)算機(jī)視覺方面的知識(shí)。

☆ END ☆

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多