国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ)

這篇具有很好參考價(jià)值的文章主要介紹了Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

快速入門(mén)

OpenCV 是 Intel? 開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)。它由一系列 C 函數(shù)和少量 C++ 類(lèi)構(gòu)成, 實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。 OpenCV 擁有包括 300 多個(gè) C 函數(shù)的跨平臺(tái)的中、高層 API。它不依賴于其它的外部庫(kù)——盡管也 可以使用某些外部庫(kù)。 OpenCV 對(duì)非商業(yè)應(yīng)用和商業(yè)應(yīng)用都是免費(fèi)的

OpenCV安裝

pip install opencv-python

安裝成功后打印版本進(jìn)行測(cè)試

import cv2
print(cv2.__version__)
4.8.0

讀取圖片

import cv2
import numpy as np
img=cv2.imread('349926.jpeg')

print('image size',np.shape(img),img.shape)

cv2.imshow('Image', img)

cv2.waitKey(0)
image size (1344, 960, 3) (1344, 960, 3)

圖像縮放、裁剪、顏色變化

圖像縮放

openCV中的參數(shù) 一般順序 (w,h) (x,y) 注意與numpy維度之間 的區(qū)別

# 獲取圖像的高h(yuǎn)和寬w
h, w = img.shape[:2]
# 設(shè)置縮放倍數(shù)為2
scale = 2
# 將圖像縮放為原來(lái)的2倍大小
imgResize1 = cv2.resize(img, (int(w*scale), int(h*scale)))
# 顯示縮放后的圖像
# cv2.imshow("resize1", imgResize1)
# 打印縮放后圖像的shape
print("imgResize1 size", imgResize1.shape)
# 設(shè)置縮放倍數(shù)為0.5
scale = 0.5
# 將圖像縮放為原來(lái)的0.5倍大小
imgResize2 = cv2.resize(img, (int(w*scale), int(h*scale)))
cv2.imshow("resize2", imgResize2)
print("imgResize2 size", imgResize2.shape)
cv2.waitKey(0)

imgResize1 size (2688, 1920, 3)
imgResize2 size (672, 480, 3)

cv2.resize

  • 輸入?yún)?shù):
    • src:要縮放的圖像,類(lèi)型為UMat
    • dsize:目標(biāo)大小,類(lèi)型為包含兩個(gè)int的序列,比如(寬,高)
    • dst:可選的輸出圖像,類(lèi)型為UMat
    • fx:可選的橫向縮放因子,類(lèi)型為float
    • fy:可選的縱向縮放因子,類(lèi)型為float
    • interpolation:可選的插值方法,類(lèi)型為int

Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ),opencv,python,人工智能

圖像裁剪、顏色變化

等待任意按鍵 0 表示一直等待 加任意數(shù)字(ms) 表示等待一段時(shí)間 后繼續(xù)執(zhí)行

# 圖像剪裁
imgCropped = img[int(h/3):int(2*h/3), int(w/3):int(w*2/3)]
# 顯示剪裁后的圖像
cv2.imshow("cropped", imgCropped)
# 打印剪裁后圖像大小
print("imgcropped size", imgCropped.shape)
# 顏色變換 - RGB,將BGR顏色空間轉(zhuǎn)換到RGB顏色空間 BGR是opencv默認(rèn)的顏色順序,代表藍(lán)綠紅通道(Blue, Green, Red)。但大多數(shù)圖像處理和機(jī)器學(xué)習(xí)算法都采用RGB顏色順序,代表紅綠藍(lán)(Red, Green, Blue)。
#因此在opencv讀取圖片后,經(jīng)常需要將BGR轉(zhuǎn)為RGB,以便后續(xù)算法處理。
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
imgRGB=cv2.resize(imgRGB,(int(w*0.5),int(h*0.5)))
# 顏色變換 - 灰度化
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
imgGray=cv2.resize(imgGray,(int(w*0.5),int(h*0.5)))
# 打印灰度圖像大小
print("imgGray size", imgGray.shape)
# 顯示 RGB 圖像
cv2.imshow("RGB", imgRGB)
# 顯示灰度圖像
cv2.imshow("Gray", imgGray)
# 等待按鍵輸入
cv2.waitKey(0)

imgcropped size (448, 320, 3)
imgGray size (672, 480)

cv2.cvtColor

  • BGR: OpenCV默認(rèn)的顏色空間,藍(lán)綠紅通道
  • GRAY: 灰度圖像,亮度作為像素值
  • HSV: Hue Saturation Value,色調(diào)飽和度空間
  • YCrCb: 亮度(luma)和色度(chroma)空間,用于壓縮和編碼
  • HLS: Hue Lightness Saturation,hue亮度飽和度空間
  • Lab: CIE Lab*空間,L為亮度,a和b表示顏色opponent維度
  • RGB: 紅綠藍(lán)additive色彩空間,用于顯示

Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ),opencv,python,人工智能

讀取視頻、攝像頭、視頻流

import cv2

# 打開(kāi)視頻文件
cap = cv2.VideoCapture('My 10 YEAR Indie Game Development Journey.mp4')

# 打開(kāi)攝像頭,參數(shù)是設(shè)備id
# cap = cv2.VideoCapture(0)

# 打開(kāi)視頻流,需要指定視頻流的 URL
# video = "http://admin:admin@192.168.1.3:8081/u"
# cap = cv2.VideoCapture(video)

while True:
    # 讀取視頻的一幀,success表示是否成功,img是當(dāng)前幀的圖像
    success, img = cap.read()

    if success:
       # 如果成功,顯示當(dāng)前幀
       cv2.imshow('video', img)

       # 每顯示一幀,檢查是否按下q鍵退出
       if cv2.waitKey(1) & 0xFF == ord('q'):
           break

# 完成后,釋放攝像頭/文件
cap.release()

繪圖

import cv2
import numpy as np

# 創(chuàng)建一個(gè)空的黑色圖像作為繪圖Canvas
img = np.zeros((512,512,3), np.uint8)

# 繪制圓形
# 圓心坐標(biāo)
center = (400,50)
# 半徑
radius = 30
# 線條顏色
color = (255,255,0)
# 線條寬度
thickness = 5
# 繪制空心圓
cv2.circle(img, center, radius, color, thickness)

# 繪制填充圓
cv2.circle(img,(450,80), 30, (0,255,255), cv2.FILLED)

# 繪制直線
# 起始點(diǎn)坐標(biāo)
p1 = (0,0)
# 結(jié)束點(diǎn)坐標(biāo)
p2 = (img.shape[1], img.shape[0])
# 線條顏色
color = (0,255,0)
# 線條寬度
thickness = 3
# 繪制直線
cv2.line(img, p1, p2, color, thickness)


# 繪制矩形
# 左上角坐標(biāo)
p1 = (0,0)
# 矩形大小(寬度,高度)
size = (250, 350)
# 線條顏色
color = (0,0,255)
# 線條寬度
thickness = 2
# 繪制空心矩形
cv2.rectangle(img, p1, size, color, thickness)

# 繪制填充矩形
cv2.rectangle(img, (100,100), (200,200), (255,0,0), cv2.FILLED)

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

Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ),opencv,python,人工智能

繪畫(huà)文字

import cv2
from PIL import ImageFont, ImageDraw, Image
import numpy as np


# Pillow模塊繪制中文
def paint_chinese_opencv(img, chinese, position, color, font_size=20):
    # OpenCV圖片轉(zhuǎn)PIL圖片
    img_PIL = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

    # 加載字體
    font = ImageFont.truetype('Noto Sans CJK Bold.otf', font_size, encoding="utf-8")

    # 輸出的文字
    draw = ImageDraw.Draw(img_PIL)
    # 繪制文字
    draw.text(position, chinese, color, font)
    # draw.text(position, chinese, color)

    # PIL圖片轉(zhuǎn)OpenCV圖片
    img = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)

    return img


# OpenCV模塊繪制英文
img = np.zeros((512, 512, 3), np.uint8)

# 文字內(nèi)容
text = "OpenCV"
# 文字區(qū)域左上角坐標(biāo)
position = (300, 200)
# 加載字體
font = cv2.FONT_HERSHEY_COMPLEX
# 字號(hào)
font_size = 1
# 文字顏色 green
color = (0, 150, 0)
# 線條寬度
thickness = 3

# 繪制文字
cv2.putText(img, text, position, font, font_size, color, thickness)

# Pillow模塊繪制中文
text = "這是中文"
position = (300, 250)
color = (150, 0, 0)

img = paint_chinese_opencv(img, text, position, color)

cv2.imshow('Image', img)
cv2.waitKey(0)

Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ),opencv,python,人工智能

常見(jiàn)問(wèn)題:

libgtk2.0-dev and pkg-config庫(kù)找不到

The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-696990.html

pip install opencv-contrib-python

到了這里,關(guān)于Opencv快速入門(mén)教程,Python計(jì)算機(jī)視覺(jué)基礎(chǔ)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與JAVA網(wǎng)絡(luò)編程URL編程-----JAVA入門(mén)基礎(chǔ)教程-----計(jì)算機(jī)網(wǎng)絡(luò)經(jīng)典

    import org.junit.jupiter.api.Test; import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class URLTest { public static void main(String[] args) { //URL:統(tǒng)一資源定位符(種子),一個(gè)URL就定位著互聯(lián)網(wǎng)上某個(gè)資源的地址 //http:應(yīng)用層協(xié)議,IP地址,端口號(hào),資源地址,參數(shù)

    2024年02月15日
    瀏覽(99)
  • 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與JAVA網(wǎng)絡(luò)編程手寫(xiě)Socket聊天室-----JAVA入門(mén)基礎(chǔ)教程-----計(jì)算機(jī)網(wǎng)絡(luò)經(jīng)典

    import java.io.*; import java.net.Socket; import java.util.Scanner; public class ChatClient { public static void main(String[] args) { try { Socket socket = new Socket(\\\"127.0.0.1\\\",9090); new Thread(new Runnable() { @Override public void run() { InputStream inputStream = null; while(true) { try { inputStream = socket.getInputStream(); } catch (IOException e)

    2024年02月15日
    瀏覽(31)
  • python爬蟲(chóng)入門(mén)教程(非常詳細(xì)):如何快速入門(mén)Python爬蟲(chóng)?

    示例示例Python爬蟲(chóng)入門(mén)教程什么是爬蟲(chóng)爬蟲(chóng)(又稱(chēng)網(wǎng)絡(luò)爬蟲(chóng))是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本。它可以自動(dòng)地抓取網(wǎng)頁(yè)內(nèi)容,并從中提取有用的數(shù)據(jù),存儲(chǔ)到本地文件或數(shù)據(jù)庫(kù)中。 Python爬蟲(chóng)入門(mén)教程 1. 什么是爬蟲(chóng)爬蟲(chóng)(又稱(chēng)網(wǎng)絡(luò)爬蟲(chóng))是一種

    2024年02月10日
    瀏覽(30)
  • Python私教MongoDB快速入門(mén)教程

    拉取鏡像: 創(chuàng)建容器: 設(shè)置用戶名和密碼: 校驗(yàn)用戶名和密碼: 創(chuàng)建數(shù)據(jù)庫(kù): 查看所有數(shù)據(jù)庫(kù): 插入一條數(shù)據(jù),再查看所有數(shù)據(jù)庫(kù): 刪除數(shù)據(jù)庫(kù): 集合相當(dāng)于一張表,創(chuàng)建一張user集合: 查看所有的集合: 創(chuàng)建固定集合 mycol,整個(gè)集合空間大小 6142800 B, 文檔最大個(gè)數(shù)為

    2024年01月22日
    瀏覽(14)
  • Python八字教程1簡(jiǎn)介&快速入門(mén)

    Python八字教程1簡(jiǎn)介&快速入門(mén)

    https://github.com/china-testing/bazi是基于Python的八字排盤(pán)工具。它清晰看出沖刑合會(huì)、陰陽(yáng)等關(guān)系,并有凝聚大師多年經(jīng)驗(yàn)的評(píng)判。另有合婚、風(fēng)水等功能。是目前市面功能最強(qiáng)大的免費(fèi)開(kāi)源八字排盤(pán)工具,適合具有編程基礎(chǔ)者在電腦上使用。 輸入數(shù)字的年月日時(shí)進(jìn)行八字排盤(pán) 年

    2024年04月08日
    瀏覽(25)
  • Python圖像處理:OpenCV入門(mén)教程

    所謂圖像處理指利用計(jì)算機(jī)技術(shù)對(duì)圖像進(jìn)行處理和增強(qiáng)的過(guò)程。它是計(jì)算機(jī)視覺(jué)的組成部分,可應(yīng)用于多個(gè)領(lǐng)域。 Python是一門(mén)高級(jí)編程語(yǔ)言其在數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和人工智能等領(lǐng)域都有廣泛的應(yīng)用。在圖像處理領(lǐng)域中,Python與OpenCV相關(guān)聯(lián), OpenCV是一種開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),

    2024年02月06日
    瀏覽(94)
  • 圖像處理入門(mén)教程:從Python到Opencv

    圖像處理入門(mén)教程:從Python到Opencv

    這里主要針對(duì)有一定基礎(chǔ)的讀者,在Python編程中,掌握基礎(chǔ)語(yǔ)法和數(shù)據(jù)類(lèi)型是非常重要的。它們是構(gòu)建程序的基石,是提供解決問(wèn)題和開(kāi)發(fā)應(yīng)用的工具。在這里,我將簡(jiǎn)單介紹一些常用的語(yǔ)法和數(shù)據(jù)類(lèi)型。 詳細(xì)請(qǐng)參考此篇純凈Python環(huán)境的安裝以及配置PyCharm編輯器。 (1)If

    2024年02月13日
    瀏覽(90)
  • Python入門(mén)教程32:計(jì)算程序運(yùn)行的時(shí)間

    Python入門(mén)教程32:計(jì)算程序運(yùn)行的時(shí)間

    ★★★★★博文原創(chuàng)不易,我的博文不需要打賞,也不需要知識(shí)付費(fèi),可以白嫖學(xué)習(xí)編程小技巧,喜歡的老鐵可以多多幫忙點(diǎn)贊,小紅牛在此表示感謝。★★★★★ Python中可以使用time模塊來(lái)計(jì)算程序的運(yùn)行時(shí)間。以下是一個(gè)簡(jiǎn)單的示例:計(jì)算打印1萬(wàn)遍,以下文本需要的時(shí)間

    2024年02月10日
    瀏覽(30)
  • B站云計(jì)算大神Python入門(mén)云計(jì)算系列教程

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 在當(dāng)下技術(shù)日新月異的時(shí)代,云計(jì)算作為一種新的經(jīng)濟(jì)增長(zhǎng)模式正在引起越來(lái)越多人的關(guān)注,同時(shí),開(kāi)發(fā)者也越來(lái)越多地加入到這個(gè)領(lǐng)域。本系列文章的目標(biāo)就是為了幫助初級(jí)工程師以及更高階的開(kāi)發(fā)者能夠快速掌握云計(jì)算的相關(guān)知識(shí)以及最佳

    2024年02月08日
    瀏覽(22)
  • 【Python入門(mén)教程】基于OpenCV視頻分解成圖片+圖片組合成視頻(視頻抽幀組幀)

    ? ? ? ? 在人工智能爆火的今天,深度學(xué)習(xí)被廣泛應(yīng)用于各個(gè)領(lǐng)域。深度學(xué)習(xí)的模型訓(xùn)練離不開(kāi)大量的樣本庫(kù)。我之前分享過(guò)【Python爬蟲(chóng)】批量爬取網(wǎng)頁(yè)的圖片制作數(shù)據(jù)集,今天跟大家分享一下如何使用OpenCV庫(kù)對(duì)視頻進(jìn)行抽幀,從而增加樣本圖片的數(shù)量。正好也順便分享一下

    2024年02月04日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包