欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?OpenCV中常用圖片處理函數(shù)小結(jié)

 更新時(shí)間:2024年03月13日 09:25:47   作者:Sitin濤哥  
在計(jì)算機(jī)視覺(jué)和圖像處理領(lǐng)域,OpenCV(Open?Source?Computer?Vision?Library)是一個(gè)非常強(qiáng)大和流行的開(kāi)源庫(kù),本文將介紹一些常用的OpenCV函數(shù),希望對(duì)大家有所幫助

在計(jì)算機(jī)視覺(jué)和圖像處理領(lǐng)域,OpenCV(Open Source Computer Vision Library)是一個(gè)非常強(qiáng)大和流行的開(kāi)源庫(kù)。它提供了豐富的函數(shù)和工具,用于處理圖像和視頻數(shù)據(jù)。本文將介紹一些常用的OpenCV函數(shù),包括圖像讀取、顯示、保存、調(diào)整大小、轉(zhuǎn)換顏色空間、圖像濾波、邊緣檢測(cè)等,并提供詳細(xì)的示例代碼可以更好地理解和應(yīng)用。

安裝OpenCV庫(kù)

在開(kāi)始之前,需要確保已經(jīng)安裝了OpenCV庫(kù)。

可以使用pip來(lái)安裝OpenCV:

pip install opencv-python

圖像讀取、顯示和保存

在OpenCV中,可以使用cv2.imread()函數(shù)讀取圖像,使用cv2.imshow()函數(shù)顯示圖像,使用cv2.imwrite()函數(shù)保存圖像。

import cv2

# 讀取圖像
image = cv2.imread('example.jpg')

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

# 保存圖像
cv2.imwrite('output.jpg)

調(diào)整圖像大小

在圖像處理中,經(jīng)常需要調(diào)整圖像的大小以適應(yīng)不同的需求??梢允褂胏v2.resize()函數(shù)來(lái)調(diào)整圖像的大小。

import cv2

# 讀取圖像
image = cv2.imread('example.jpg')

# 調(diào)整圖像大小為寬度為300像素,高度自動(dòng)調(diào)整
resized_image = cv2.resize(image, (300, 0))

# 顯示調(diào)整大小后的圖像
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

轉(zhuǎn)換顏色空間

在圖像處理中,經(jīng)常需要將圖像從一種顏色空間轉(zhuǎn)換到另一種顏色空間。OpenCV提供了cv2.cvtColor()函數(shù)來(lái)實(shí)現(xiàn)顏色空間的轉(zhuǎn)換。

import cv2

# 讀取圖像
image = cv2.imread('example.jpg')

# 將圖像從BGR顏色空間轉(zhuǎn)換為灰度顏色空間
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 顯示灰度圖像
cv2.imshow('Gray Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像濾波

圖像濾波是圖像處理中常用的技術(shù)之一,用于平滑圖像、去除噪聲、邊緣檢測(cè)等。OpenCV提供了多種圖像濾波函數(shù),包括高斯濾波、中值濾波等。

import cv2

# 讀取圖像
image = cv2.imread('example.jpg')

# 高斯濾波
blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

# 顯示濾波后的圖像
cv2.imshow('Blurred Image', blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

邊緣檢測(cè)

邊緣檢測(cè)是圖像處理中的重要任務(wù)之一,可以幫助識(shí)別圖像中的物體邊界和輪廓。OpenCV提供了多種邊緣檢測(cè)算法,包括Sobel算子、Canny邊緣檢測(cè)等。

import cv2

# 讀取圖像
image = cv2.imread('example.jpg')

# 將圖像轉(zhuǎn)換為灰度圖像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 使用Canny邊緣檢測(cè)算法檢測(cè)邊緣
edges = cv2.Canny(gray_image, 100, 200)

# 顯示邊緣檢測(cè)結(jié)果
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像旋轉(zhuǎn)和仿射變換

除了調(diào)整大小和顏色空間轉(zhuǎn)換外,有時(shí)候還需要對(duì)圖像進(jìn)行旋轉(zhuǎn)或者仿射變換。OpenCV提供了cv2.rotate()函數(shù)來(lái)實(shí)現(xiàn)圖像的旋轉(zhuǎn),以及cv2.warpAffine()函數(shù)來(lái)實(shí)現(xiàn)仿射變換。

import cv2
import numpy as np

# 讀取圖像
image = cv2.imread('example.jpg')

# 獲取圖像的高度和寬度
height, width = image.shape[:2]

# 旋轉(zhuǎn)圖像90度
rotated_image = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE)

# 定義旋轉(zhuǎn)矩陣(逆時(shí)針旋轉(zhuǎn)45度)
rotation_matrix = cv2.getRotationMatrix2D((width/2, height/2), 45, 1)

# 進(jìn)行仿射變換
affine_transformed_image = cv2.warpAffine(image, rotation_matrix, (width, height))

# 顯示旋轉(zhuǎn)后的圖像和仿射變換后的圖像
cv2.imshow('Rotated Image', rotated_image)
cv2.imshow('Affine Transformed Image', affine_transformed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像輪廓和形狀檢測(cè)

在圖像處理和計(jì)算機(jī)視覺(jué)中,常常需要檢測(cè)圖像中的輪廓和形狀。OpenCV提供了cv2.findContours()函數(shù)來(lái)尋找圖像中的輪廓,以及cv2.drawContours()函數(shù)來(lái)繪制輪廓。

import cv2

# 讀取圖像
image = cv2.imread('example.jpg')

# 將圖像轉(zhuǎn)換為灰度圖像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 使用Canny邊緣檢測(cè)算法檢測(cè)邊緣
edges = cv2.Canny(gray_image, 100, 200)

# 尋找圖像中的輪廓
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 繪制輪廓
contour_image = cv2.drawContours(image.copy(), contours, -1, (0, 255, 0), 2)

# 顯示輪廓圖像
cv2.imshow('Contours', contour_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖像特征提取和匹配

圖像特征提取和匹配是計(jì)算機(jī)視覺(jué)中的重要任務(wù),可以用于圖像識(shí)別、目標(biāo)跟蹤等應(yīng)用。OpenCV提供了多種特征提取和匹配算法,包括SIFT、SURF、ORB等。

import cv2

# 讀取圖像
image1 = cv2.imread('example1.jpg')
image2 = cv2.imread('example2.jpg')

# 將圖像轉(zhuǎn)換為灰度圖像
gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray_image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)

# 創(chuàng)建SIFT檢測(cè)器
sift = cv2.SIFT_create()

# 檢測(cè)關(guān)鍵點(diǎn)和描述符
keypoints1, descriptors1 = sift.detectAndCompute(gray_image1, None)
keypoints2, descriptors2 = sift.detectAndCompute(gray_image2, None)

# 創(chuàng)建匹配器
bf = cv2.BFMatcher()

# 使用KNN匹配
matches = bf.knnMatch(descriptors1, descriptors2, k=2)

# 應(yīng)用比率測(cè)試
good_matches = []
for m, n in matches:
    if m.distance < 0.75 * n.distance:
        good_matches.append([m])

# 繪制匹配結(jié)果
match_image = cv2.drawMatchesKnn(image1, keypoints1, image2, keypoints2, good_matches, None, flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS)

# 顯示匹配結(jié)果
cv2.imshow('Matches', match_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

總結(jié)

本文介紹了Python中使用OpenCV庫(kù)進(jìn)行圖像處理的一些常用函數(shù)和技術(shù),包括圖像讀取、顯示、保存、調(diào)整大小、轉(zhuǎn)換顏色空間、圖像濾波、邊緣檢測(cè)、圖像旋轉(zhuǎn)和仿射變換、圖像輪廓和形狀檢測(cè)、圖像特征提取和匹配等。通過(guò)合理地應(yīng)用這些函數(shù)和技術(shù),可以實(shí)現(xiàn)各種圖像處理和計(jì)算機(jī)視覺(jué)任務(wù),為圖像分析、目標(biāo)識(shí)別、圖像檢測(cè)等領(lǐng)域的應(yīng)用提供支持。希望本文能夠幫助大家更好地理解和應(yīng)用OpenCV庫(kù),在實(shí)際的項(xiàng)目中發(fā)揮其作用。

以上就是Python OpenCV中常用圖片處理函數(shù)小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python OpenCV圖片處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用imageio庫(kù)處理圖像與視頻的操作詳解

    Python使用imageio庫(kù)處理圖像與視頻的操作詳解

    imageio 是一個(gè) Python 庫(kù),用于讀取和寫(xiě)入多種圖像和視頻格式,它功能強(qiáng)大、易于使用,廣泛應(yīng)用于圖像處理、視頻編輯和數(shù)據(jù)可視化等領(lǐng)域,本篇文章將介紹 imageio 的基礎(chǔ)功能、常見(jiàn)用法以及高級(jí)操作,需要的朋友可以參考下
    2024-12-12
  • 超全面python常見(jiàn)報(bào)錯(cuò)以及解決方案梳理必收藏

    超全面python常見(jiàn)報(bào)錯(cuò)以及解決方案梳理必收藏

    使用python難免會(huì)出現(xiàn)各種各樣的報(bào)錯(cuò),以下是Python常見(jiàn)的報(bào)錯(cuò)以及解決方法(持續(xù)更新),快進(jìn)入收藏吃灰吧
    2022-03-03
  • python 用 xlwings 庫(kù) 生成圖表的操作方法

    python 用 xlwings 庫(kù) 生成圖表的操作方法

    這篇文章主要介紹了python 用 xlwings 庫(kù) 生成圖表的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python二分查找+字符串模板+textwrap模塊,

    Python二分查找+字符串模板+textwrap模塊,

    這篇文章主要介紹了Python二分查找+字符串模板+textwrap模塊,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程

    使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程

    小編最近在自學(xué)python,在學(xué)習(xí)過(guò)程中有好多意向不到的收獲,真的很開(kāi)心,今天重點(diǎn)給大家分享使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程,包括安裝環(huán)境搭建及一些注意事項(xiàng),感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • DRF之請(qǐng)求與響應(yīng)的實(shí)現(xiàn)

    DRF之請(qǐng)求與響應(yīng)的實(shí)現(xiàn)

    本文主要介紹了DRF請(qǐng)求與響應(yīng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • python調(diào)用攝像頭顯示圖像的實(shí)例

    python調(diào)用攝像頭顯示圖像的實(shí)例

    今天小編就為大家分享一篇python調(diào)用攝像頭顯示圖像的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • python?使用OpenCV進(jìn)行曝光融合

    python?使用OpenCV進(jìn)行曝光融合

    這篇文章主要介紹了python?使用OpenCV進(jìn)行曝光融合,使用OpenCV的Exposure?Fusion,曝光融合是一種將使用不同曝光設(shè)置拍攝的圖像合成為一張看起來(lái)像色調(diào)映射的高動(dòng)態(tài)范圍(HDR)圖像的圖像的方,下文更多詳細(xì)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-04-04
  • pandas中std和numpy的np.std區(qū)別及說(shuō)明

    pandas中std和numpy的np.std區(qū)別及說(shuō)明

    這篇文章主要介紹了pandas中std和numpy的np.std區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python使用captcha庫(kù)制作帶參數(shù)輸入驗(yàn)證碼案例

    Python使用captcha庫(kù)制作帶參數(shù)輸入驗(yàn)證碼案例

    這篇文章主要介紹了Python使用captcha庫(kù)制作驗(yàn)證碼,帶參數(shù)輸入,本文通過(guò)實(shí)例案例解析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論