0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV庫在圖像處理和深度學習中的應用

OSC開源社區(qū) ? 來源:TechLead ? 2023-08-18 11:33 ? 次閱讀

本文深入淺出地探討了OpenCV庫在圖像處理和深度學習中的應用。從基本概念和操作,到復雜的圖像變換和深度學習模型的使用,文章以詳盡的代碼和解釋,帶領大家步入OpenCV的實戰(zhàn)世界。

1. OpenCV簡介

什么是OpenCV?

OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺機器學習軟件庫。它由一系列的C函數和少量C++類構成,同時提供PythonJavaMATLAB等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法

# 導入OpenCV庫
import cv2

# 打印OpenCV版本
print(cv2.__version__)

輸出:

4.5.2

OpenCV的設計目標是提供一套簡單而且可擴展的計算機視覺庫,使得它能夠方便地在實際的應用、研究、開發(fā)中被使用。

OpenCV的歷史與發(fā)展

OpenCV的起源可以追溯到1999年,當時在英特爾公司由一群熱情的研發(fā)工程師開始進行開發(fā)。2000年,OpenCV以開源的方式發(fā)布,旨在推動計算機視覺的發(fā)展并幫助更多人應用這一技術。自此之后,OpenCV已經不斷發(fā)展,增加了大量新的功能,并已成為全球最流行的計算機視覺庫之一。

OpenCV的應用領域

OpenCV具有極廣的應用領域,它包括但不限于:

人臉識別和物體識別:這是OpenCV的一項重要功能,應用在許多領域,如安全監(jiān)控、交互設計等。

圖像和視頻分析:如圖像增強、圖像分割、視頻跟蹤等。

圖像合成和3D重建:在圖像處理和計算機視覺領域,OpenCV可以用于創(chuàng)建AR或VR效果,生成3D模型等。

機器學習:OpenCV內置了大量的機器學習算法,可以用于圖像分類、聚類等任務。

深度學習:OpenCV中的dnn模塊提供了一系列深度學習模型的接口,用戶可以加載預訓練模型進行圖像識別、目標檢測等任務。

# 例如,以下代碼展示了如何使用OpenCV進行圖像讀取和顯示
import cv2

# 讀取一張圖像
img = cv2.imread('image.jpg')

# 顯示圖像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

綜上,OpenCV憑借其強大的功能、開源的優(yōu)勢以及廣泛的應用領域,成為了學者和工業(yè)界的重要工具。

2. OpenCV的安裝與配置

OpenCV的安裝方式根據不同的操作系統(tǒng)和使用環(huán)境有所不同。以下我們將分別介紹在Windows、Linux和Mac OS下的安裝方式,以及如何配置Python環(huán)境使用OpenCV。

OpenCV在Windows系統(tǒng)下的安裝

在Windows系統(tǒng)下,推薦使用Python的包管理工具pip來安裝OpenCV。你可以在命令行中運行以下命令來安裝:

pip install opencv-python

如果你需要使用到OpenCV的額外模塊(如xfeatures2d等),可以安裝opencv-contrib-python包:

pip install opencv-contrib-python

OpenCV在Linux系統(tǒng)下的安裝

在Linux系統(tǒng)下,我們同樣可以使用pip來安裝OpenCV。打開終端,運行以下命令:

pip install opencv-python

同樣,如果你需要使用到OpenCV的額外模塊,可以安裝opencv-contrib-python包:

pip install opencv-contrib-python

OpenCV在Mac OS系統(tǒng)下的安裝

在Mac OS下,我們同樣可以使用pip來安裝OpenCV。打開終端,運行以下命令:

pip install opencv-python

如果你需要使用到OpenCV的額外模塊,可以安裝opencv-contrib-python包:

pip install opencv-contrib-python

配置Python環(huán)境使用OpenCV

安裝完成OpenCV后,我們可以在Python環(huán)境中導入cv2模塊來使用OpenCV的功能。你可以創(chuàng)建一個新的Python腳本,然后在其中輸入以下代碼來測試OpenCV是否安裝成功:

import cv2

# 打印OpenCV版本
print(cv2.__version__)

如果輸出了你所安裝的OpenCV版本號,那么恭喜你,你已經成功安裝并配置好了OpenCV!

總的來說,無論是在Windows、Linux還是Mac OS系統(tǒng)下,安裝和使用OpenCV都是相對簡單的。只需要幾個簡單的命令,就可以開始你的OpenCV之旅了。

3. OpenCV基礎

在此部分,我們將介紹一些OpenCV的基礎知識,包括圖像的載入、顯示和保存,以及圖像的基本操作和色彩空間的轉換。

圖像的載入、顯示和保存

在OpenCV中,我們通常使用imread()函數來載入一張圖像,使用imshow()函數來顯示一張圖像,使用imwrite()函數來保存一張圖像。

以下是一個示例:

import cv2

# 載入一張圖像
img = cv2.imread('image.jpg')

# 顯示圖像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存圖像
cv2.imwrite('new_image.jpg', img)

圖像的基礎操作

OpenCV提供了一系列的函數來進行圖像的基礎操作,包括但不限于:

獲取和修改像素值

獲取圖像的基本屬性(如大小、通道數、像素數等)

設置圖像的ROI(Region of Interest)

拆分和合并圖像通道

# 獲取和修改像素值
px = img[100,100]
print(px)

# 修改像素值
img[100,100] = [255,255,255]
print(img[100,100])

# 獲取圖像屬性
print(img.shape)
print(img.size)
print(img.dtype)

# 設置ROI
roi = img[100:200, 100:200]

# 拆分和合并圖像通道
b,g,r = cv2.split(img)
img = cv2.merge((b,g,r))

圖像色彩空間的轉換

OpenCV提供了200+種顏色空間的轉換方法,但是我們最常用的還是RGB<->Gray和RGB<->HSV的轉換。

我們可以使用cv2.cvtColor()函數來進行顏色空間的轉換,如下例:

# 轉換為灰度圖像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 轉換為HSV圖像
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

這是OpenCV基礎操作的簡單介紹,這些操作是我們在進行更高級的圖像處理之前需要掌握的基礎知識。

4. 圖像處理與計算機視覺基礎

在計算機視覺中,圖像處理是一個關鍵的環(huán)節(jié),它包括圖像閾值化、邊緣檢測、圖像濾波、圖像形態(tài)學操作和圖像二值化等操作。下面我們將一一介紹。

圖像閾值化

圖像閾值化是將圖像從灰度轉換為二值化圖像的過程,OpenCV提供了cv2.threshold()函數來進行這項操作。

import cv2
import numpy as np

# 載入圖像并轉為灰度圖
img = cv2.imread('image.jpg',0)

# 閾值化處理
ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)

# 顯示處理結果
cv2.imshow('threshold',thresh1)
cv2.waitKey(0)
cv2.destroyAllWindows()

邊緣檢測

邊緣檢測是計算機視覺中的常見任務,它可以用來識別圖像中的物體。Canny邊緣檢測是一種常用的邊緣檢測算法,OpenCV中可以使用cv2.Canny()函數來進行Canny邊緣檢測。

import cv2
import numpy as np

# 載入圖像
img = cv2.imread('image.jpg',0)

# 進行Canny邊緣檢測
edges = cv2.Canny(img,100,200)

# 顯示處理結果
cv2.imshow('edges',edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像濾波

圖像濾波是計算機視覺中常見的圖像預處理方法,OpenCV提供了各種濾波函數,如cv2.filter2D()、cv2.blur()、cv2.GaussianBlur()等。

import cv2
import numpy as np

# 載入圖像
img = cv2.imread('image.jpg')

# 使用高斯濾波進行圖像平滑處理
blur = cv2.GaussianBlur(img,(5,5),0)

# 顯示處理結果
cv2.imshow('blur',blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像形態(tài)學操作

形態(tài)學操作是基于圖像形狀的一系列操作,包括腐蝕、膨脹、開運算和閉運算等。OpenCV提供了cv2.erode()、cv2.dilate()、cv2.morphologyEx()等函數來進行形態(tài)學操作。

import cv2
import numpy as np

# 載入圖像
img = cv2.imread('image.jpg',0)

# 創(chuàng)建一個5x5的結構元素
kernel = np.ones((5,5),np.uint8)

# 進行膨脹操作
dilation = cv2.dilate(img,kernel,iterations = 1)

# 顯示處理結果
cv2.imshow('dilation',dilation)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像二值化

二值化是將圖像處理為只有兩個顏色的過程,也就是將圖像處理為黑白兩色。二值化后的圖像對于很多圖像處理任務(如邊緣檢測、物體識別等)有很大的幫助,OpenCV中可以使用cv2.threshold()函數來進行二值化操作。

import cv2
import numpy as np

# 載入圖像
img = cv2.imread('image.jpg',0)

# 進行二值化操作
ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)

# 顯示處理結果
cv2.imshow('binary',thresh1)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上是圖像處理與計算機視覺的基礎知識,掌握這些知識,就可以進行更復雜的圖像處理任務了。

5. OpenCV實戰(zhàn)案例

人臉檢測

首先,我們來實現(xiàn)一個簡單的人臉檢測程序。這個程序可以讀取一個圖像,然后使用預訓練的Haar級聯(lián)分類器檢測圖像中的人臉。

import cv2

# 加載預訓練的人臉級聯(lián)分類器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 讀取圖像
img = cv2.imread('face.jpg')

# 將圖像轉換為灰度圖
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 使用級聯(lián)分類器檢測人臉
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

# 為每個檢測到的人臉繪制一個矩形
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

# 顯示結果
cv2.imshow('Faces found', img)
cv2.waitKey(0)

實時人臉檢測

接下來,我們來實現(xiàn)一個實時的人臉檢測程序。這個程序可以實時地從攝像頭捕獲視頻,并檢測視頻中的人臉。

import cv2

# 加載預訓練的人臉級聯(lián)分類器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 打開攝像頭
cap = cv2.VideoCapture(0)

while True:
    # 讀取一幀
    ret, frame = cap.read()

    # 將幀轉換為灰度圖
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 使用級聯(lián)分類器檢測人臉
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # 為每個檢測到的人臉繪制一個矩形
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    # 顯示結果
    cv2.imshow('Faces found', frame)

    # 按'q'退出循環(huán)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 釋放攝像頭
cap.release()

# 關閉所有窗口
cv2.destroyAllWindows()

目標跟蹤

接下來的實戰(zhàn)案例是使用MeanShift算法進行目標跟蹤。我們將從視頻中選擇一個目標,然后在后續(xù)的幀中跟蹤這個目標。

import cv2
import numpy as np

# 打開攝像頭
cap = cv2.VideoCapture(0)

# 讀取第一幀
ret, frame = cap.read()

# 設置初始的窗口位置
r, h, c, w = 240, 100, 400, 160
track_window = (c, r, w, h)

# 設置初始的ROI用于跟蹤
roi = frame[r:r+h, c:c+w]
hsv_roi = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv_roi, np.array((0., 60., 32.)), np.array((180., 255., 255.)))
roi_hist = cv2.calcHist([hsv_roi], [0], mask, [180], [0, 180])
cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)

# 設置終止條件,迭代10次或者至少移動1次
term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)

while(True):
    ret, frame = cap.read()

    if ret == True:
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        dst = cv2.calcBackProject([hsv], [0], roi_hist, [0, 180], 1)

        # 使用MeanShift算法找到新的位置
        ret, track_window = cv2.meanShift(dst, track_window, term_crit)

        # 在圖像上畫出新的窗口位置
        x, y, w, h = track_window
        img2 = cv2.rectangle(frame, (x, y), (x+w, y+h), 255, 2)
        cv2.imshow('img2', img2)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

邊緣檢測

邊緣檢測是圖像處理中的重要步驟,它可以幫助我們從圖像中識別出物體的輪廓。下面的實戰(zhàn)案例是使用Canny算法進行邊緣檢測。

import cv2
import numpy as np

# 讀取圖像
img = cv2.imread('road.jpg', 0)

# 使用Canny算法進行邊緣檢測
edges = cv2.Canny(img, 50, 150)

# 顯示原圖和邊緣檢測結果
cv2.imshow('Original Image', img)
cv2.imshow('Edge Image', edges)

cv2.waitKey(0)
cv2.destroyAllWindows()

圖像拼接

圖像拼接是將兩個或多個圖像在一定的幾何和光度條件下拼接在一起,形成一個包含了所有輸入圖像視場的大視場圖像。以下實戰(zhàn)案例將展示如何使用OpenCV進行圖像拼接。

import cv2
import numpy as np

# 讀取兩個圖像
img1 = cv2.imread('road1.jpg')
img2 = cv2.imread('road2.jpg')

# 將兩個圖像拼接成一個圖像
stitcher = cv2.Stitcher.create()
result, pano = stitcher.stitch([img1, img2])

if result == cv2.Stitcher_OK:
    cv2.imshow('Panorama', pano)
    cv2.waitKey()
    cv2.destroyAllWindows()
else:
    print("Error during stitching.")

6. 深度學習與OpenCV

OpenCV庫不僅提供了大量的基本圖像處理函數,還為深度學習領域提供了強大的支持。它可以用來加載預訓練的模型,并使用這些模型進行圖像分類、對象檢測、圖像分割等任務。下面我們將通過一些實戰(zhàn)案例來深入了解OpenCV如何應用在深度學習中。

加載預訓練模型

首先,我們將學習如何加載一個預訓練的模型。我們將使用OpenCV中的DNN模塊,該模塊支持多種深度學習框架,包括TensorFlow、Caffe等。

import cv2

# 加載預訓練的模型
net = cv2.dnn.readNetFromCaffe('bvlc_googlenet.prototxt', 'bvlc_googlenet.caffemodel')

圖像分類

接下來,我們將使用加載的模型進行圖像分類。我們將對一個圖像進行預處理,然后將其輸入到模型中,獲取分類結果。

import cv2
import numpy as np

# 加載預訓練的模型
net = cv2.dnn.readNetFromCaffe('bvlc_googlenet.prototxt', 'bvlc_googlenet.caffemodel')

# 加載標簽名
with open('synset_words.txt', 'r') as f:
    labels = f.read().strip().split("
")

# 加載圖像,并進行預處理
image = cv2.imread('image.jpg')
blob = cv2.dnn.blobFromImage(image, 1, (224, 224), (104, 117, 123))

# 將圖像輸入到網絡中,進行前向傳播,得到輸出結果
net.setInput(blob)
outputs = net.forward()

# 獲取預測結果
class_id = np.argmax(outputs)
label = labels[class_id]

print('Output class:', label)

物體檢測

此外,我們還可以使用預訓練的模型進行物體檢測。我們將使用預訓練的YOLO模型來檢測圖像中的物體。

import cv2
import numpy as np

# 加載預訓練的模型
net = cv2.dnn.readNet('yolov3.weights', 'yolov3.cfg')

# 加載圖像,并進行預處理
image = cv2.imread('image.jpg')
blob = cv2.dnn.blobFromImage(image, 1/255, (416, 416), swapRB=True, crop=False)

# 將圖像輸入到網絡中,進行前向傳播,得到輸出結果
net.setInput(blob)
layer_names = net.getLayerNames()
output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
outputs = net.forward(output_layers)

# 處理網絡的輸出結果
for output in outputs:
    for detection in output:
        scores = detection[5:]
        class_id = np.argmax(scores)
        confidence = scores[class_id]

        if confidence > 0.5:
            # 將檢測到的物體在圖像上標記出來
            center_x, center_y, w, h = map(int, detection[0:4] * np.array([image.shape[1], image.shape[0], image.shape[1], image.shape[0]]))
            x = center_x - w // 2
            y = center_y - h // 2
            cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上就是OpenCV在深度學習中的應用示例,希望這些案例可以幫助你更好地理解如何使用OpenCV進行深度學習任務。

總結與展望

在這篇博客中,我們探討了如何使用OpenCV進行各種圖像處理和深度學習任務。從最基本的圖像讀取和顯示,到復雜的圖像變換、圖像分割、邊緣檢測,再到深度學習的圖像分類和物體檢測,我們都有詳細的代碼和解釋。

OpenCV是一個強大而且易于使用的庫,它為圖像處理和計算機視覺提供了許多工具。無論你是一名研究者,還是一名開發(fā)者,或者只是一個對圖像處理和計算機視覺感興趣的初學者,OpenCV都可以幫助你快速實現(xiàn)你的想法。

未來,OpenCV還將繼續(xù)發(fā)展,加入更多的功能和工具。例如,OpenCV的開發(fā)者已經在考慮如何更好地支持3D圖像處理和增強現(xiàn)實技術。同時,隨著深度學習的發(fā)展,OpenCV也將繼續(xù)提供更好的支持,包括加載更多的預訓練模型,以及提供更多的工具來幫助開發(fā)者訓練自己的模型。

總的來說,OpenCV是圖像處理和計算機視覺領域的一個重要工具,無論你是初學者還是專家,都應該熟練掌握這個庫。希望這篇博客能對你有所幫助。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像處理
    +關注

    關注

    26

    文章

    1268

    瀏覽量

    56368
  • 計算機
    +關注

    關注

    19

    文章

    7168

    瀏覽量

    87142
  • C++
    C++
    +關注

    關注

    21

    文章

    2085

    瀏覽量

    73301
  • OpenCV
    +關注

    關注

    29

    文章

    622

    瀏覽量

    41087
  • 深度學習
    +關注

    關注

    73

    文章

    5422

    瀏覽量

    120587

原文標題:總結與展望

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    圖像處理應用深度學習的重要性分析

    作者:Martin Cassel,Silicon Software 工業(yè)應用FPGA 上的神經元網絡(CNN) 深度學習應用憑借其識別應用
    的頭像 發(fā)表于 12-13 11:24 ?6040次閱讀

    如何在OpenCV中使用基于深度學習的邊緣檢測?

    在這篇文章,我們將學習如何在OpenCV中使用基于深度學習的邊緣檢測,它比目前流行的canny邊緣檢測器更精確。
    的頭像 發(fā)表于 05-19 09:52 ?1923次閱讀
    如何在<b class='flag-5'>OpenCV</b>中使用基于<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的邊緣檢測?

    使用圖像處理OpenCV從攝像頭獲取數據并在PyQt5上顯示出來

    OpenCV能夠處理圖像、視頻、深度圖像等各種類型的視覺數據
    的頭像 發(fā)表于 01-05 17:32 ?1771次閱讀
    使用<b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>庫</b><b class='flag-5'>OpenCV</b>從攝像頭獲取數據并在PyQt5上顯示出來

    esp32能不能直接跑opencv?有沒有板子上面做圖像處理

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理
    發(fā)表于 06-13 06:59

    Vivado HLS實現(xiàn)OpenCV圖像處理的設計流程與分析

    和nChannels。普通的矩陣類型當中,通常深度和通道數被同時表示,如用32位表示RGB+Alpha.但是,圖像處理
    發(fā)表于 07-08 08:30

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理?

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理
    發(fā)表于 02-10 07:29

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理
    發(fā)表于 03-03 07:10

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理?

    esp32能不能直接跑opencv,有沒有板子上面做圖像處理
    發(fā)表于 03-08 08:46

    OpenCV圖像處理編程研究

    OpenCV是一種用于數字圖像處理和計算機視覺的函數,由Intel微處理器研究實驗室的視覺交互組開發(fā),采用的開發(fā)語言是C++。本文通過
    發(fā)表于 06-25 17:52 ?0次下載

    深度學習圖像超清化的應用

    深度學習的出現(xiàn)使得算法對圖像的語義級操作成為可能。本文即是介紹深度學習技術
    發(fā)表于 09-30 11:15 ?1次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>在</b><b class='flag-5'>圖像</b>超清化的應用

    OpenCV技術在數字圖像處理的應用

    開放源代碼的計算機視覺類OpenCV由英特爾公司位于俄羅斯的研究實驗室開發(fā),它是一套可以免費獲得的由一些C函數和C++類所組成的,用來實現(xiàn)常用的圖像
    發(fā)表于 12-04 13:53 ?2546次閱讀
    <b class='flag-5'>OpenCV</b>技術在數字<b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>中</b>的應用

    如何使用OpenCV、Python和深度學習圖像和視頻實現(xiàn)面部識別?

    Face ID 的興起帶動了一波面部識別技術熱潮。本文將介紹如何使用 OpenCV、Python 和深度學習圖像和視頻
    的頭像 發(fā)表于 07-17 16:20 ?7934次閱讀

    深度學習圖像分割的方法和應用

    分析和分類以及機器人和自動駕駛車輛的圖像處理等應用上。 許多計算機視覺任務需要對圖像進行智能分割,以理解圖像的內容,并使每個部分的分析更加
    的頭像 發(fā)表于 11-27 10:29 ?3047次閱讀

    OpenCV使用深度學習做邊緣檢測的流程

    導讀 分析了Canny的優(yōu)劣,并給出了OpenCV使用深度學習做邊緣檢測的流程。 在這篇文章,我們將學習如何在
    的頭像 發(fā)表于 05-08 11:05 ?2170次閱讀
    <b class='flag-5'>OpenCV</b>使用<b class='flag-5'>深度</b><b class='flag-5'>學習</b>做邊緣檢測的流程

    深度學習圖像分割

    深度學習可以學習視覺輸入的模式,以預測組成圖像的對象類。用于圖像處理的主要
    的頭像 發(fā)表于 05-05 11:35 ?1117次閱讀