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

opencv學(xué)習(xí)(一)圖像的基本操作

這篇具有很好參考價(jià)值的文章主要介紹了opencv學(xué)習(xí)(一)圖像的基本操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

  1. 數(shù)據(jù)的讀取

  • cv2.IMREAD_COLOR:彩色圖像

  • cv2.IMREAD_GRAYSCALE:灰度圖像

import cv2 
img = cv2.imread('E:/opencv/open-cv/2-7/cat.jpg',1)

cv2.imshow("img", img)
cv2.waitKey(0)    
cv2.destroyAllWindows() 
  • cv2.imread()讀取圖片,當(dāng)括號(hào)里面是1時(shí),也就是替代了cv2.IMREAD_COLOR,得到彩色圖。

opencv學(xué)習(xí)(一)圖像的基本操作
  • cv2.imread()讀取圖片,當(dāng)括號(hào)里面是0時(shí),替代了cv2.IMREAD_GRAYSCALE,得到灰度圖。

opencv學(xué)習(xí)(一)圖像的基本操作
  • cv.inshow()函數(shù)為創(chuàng)建一個(gè)展示窗口,括號(hào)里面分別為圖片名字讀取哪個(gè)圖片。

  • cv2.waitKey(0) 等待時(shí)間多久,其中括號(hào)中0表示任意鍵可以中止顯示圖片。

  • cv2.destroyAllWindows() 關(guān)閉窗口。

2.opencv圖片顏色轉(zhuǎn)換

import cv2 
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline 

img=cv2.imread('E:/opencv/open-cv/2-7/cat.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("img_gray", img_gray)
cv2.waitKey(0)    
cv2.destroyAllWindows() 
  • 由于cv2讀取的圖像格式為BGR,而Matplotlib畫(huà)的是RGB,因此需要對(duì)格式進(jìn)行轉(zhuǎn)換。

cv2.COLOR_BGR2GRAY轉(zhuǎn)化成灰度圖,cv2.COLOR_BGR2RGB轉(zhuǎn)換成RGB圖,cv2.COLOR_BGR2HSV轉(zhuǎn)換成HSV圖。

其中HSV分別表示如下,轉(zhuǎn)換圖片也如下圖所示:

  • H - 色調(diào)

  • S - 飽和度

  • V值(強(qiáng)度)

opencv學(xué)習(xí)(一)圖像的基本操作

3.圖像保存

cv2.inwrite('cat.png',img_gray)
img_gray.type()
  • 只需要輸入cv2.inwrite()函數(shù)即可保存圖像。

  • img_gray.type()可以查看數(shù)據(jù)類(lèi)型

4.視頻圖像的讀取

vc = cv2.VideoCapture('E:/opencv/open-cv/2-7/test.mp4')
  • cv2.VideoCapture()函數(shù)用來(lái)捕捉攝像頭,控制不同的設(shè)備。

if vc.isOpened():
    open, frame =vc.read()
else:
    open = False
print(frame)
  • 檢查視頻是否讀取錯(cuò)誤,其中open只有兩個(gè)值要么True,要么是Falseframe為讀取一幀一幀的值。

while open:
    ret, frame = vc.read()
    #print(ret)
    if frame is None:
        break
    if ret == True:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        cv2.imshow('result',gray)
        if cv2.waitKey(20)& 0xFF==27:
            break

vc.release()    
cv2.destroyAllWindows()
  • 其中cv2.waitKey(20)& 0xFF==27,這句就是如果期間有按鍵按下返回的值就是按下按鍵的ASCII值,就比如esc鍵的ASCII值是27,cv2.waitKey(20) & 0xFF==27就是當(dāng)按下按鍵是esc的時(shí)候返回true。0xFF意思是16進(jìn)制的FF也就是八位2進(jìn)制數(shù)1111 1111,如果引入& 0xFF==27 那么得出的結(jié)果永遠(yuǎn)是后八位,這樣就可以排除其他按鍵的干擾。

  • vc.release() 釋放硬件資源。

5.截取圖像操作

import cv2 
img = cv2.imread('E:/opencv/open-cv/2-7/dog.jpg',1)
dog = img[0:200,0:200]
cv2.imshow("img", dog)
cv2.waitKey(0)    
cv2.destroyAllWindows() 

截取狗狗圖像對(duì)比如下:

opencv學(xué)習(xí)(一)圖像的基本操作

原始狗狗圖像

opencv學(xué)習(xí)(一)圖像的基本操作

截取的狗狗圖像

6.提取顏色通道

  • 其中一張圖片b,g,r的shape值是一樣的。利用cv2.merge((b,g,r))函數(shù)是可以重構(gòu)圖像顏色通道。

b,g,r = cv2.split(img)
  • 只保留一個(gè)通道。b,g,r分別代號(hào)為0,1,2,下面保留r通道。

img1 = img.copy()
img1[:,:,0]=0
img1[:,:,1]=0
cv2.imshow('r',img1)
opencv學(xué)習(xí)(一)圖像的基本操作

只保留R通道

7.圖像邊界填充

#邊界填充
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)

replicate = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REPLICATE)
reflect = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REFLECT)
reflect_101 = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REFLECT_101)
wrap = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_WRAP)
constant = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_CONSTANT)

#繪制子圖
plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title("REPLICATE")
plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT')
plt.subplot(234), plt.imshow(reflect_101, 'gray'), plt.title("REFLECT_101")
plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP')
plt.subplot(236), plt.imshow(constant, 'gray'), plt.title("CONSTANT")

plt.show()
  • borderType:圖像填充的方法。

  • BORDER_REPLICATE:復(fù)制法,也就是復(fù)制最邊緣像素。

  • BORDER_REFLECT:反射法,對(duì)感興趣的圖像中的像素在兩邊進(jìn)行復(fù)制

  • BORDER_REFLECT_101:反射法,也就是以最邊緣像素為軸,對(duì)稱(chēng)。

  • BORDER_WRAP:外包裝法。

  • BORDER_CONSTANT:常量法,常數(shù)值填充,需要在設(shè)置一個(gè)value值,已顯示填充的顏色。

展示圖如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-451681.html

opencv學(xué)習(xí)(一)圖像的基本操作

到了這里,關(guān)于opencv學(xué)習(xí)(一)圖像的基本操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

  • OpenCV基本操(IO操作,讀取、顯示、保存)

    OpenCV基本操(IO操作,讀取、顯示、保存)

    參數(shù): 要讀取的圖像 讀取圖像的方式: cv.IMREAD*COLOR :以彩色模式加載圖像,任何圖像的圖像的透明度都將被忽略。這是默認(rèn)參數(shù) 標(biāo)志: 1 cv.IMREAD*GRAYSCALE :以灰度模式加載圖像 標(biāo)志: 0 cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加載圖像模式。 標(biāo)志: -1 可以使用 1、0或者

    2024年02月10日
    瀏覽(96)
  • OpenCV基本操作——圖像的基礎(chǔ)操作

    OpenCV基本操作——圖像的基礎(chǔ)操作

    注:opencv圖像坐標(biāo)系中,左上角是原點(diǎn),y軸向下,x軸向右,單位像素點(diǎn) 有時(shí)需要在B,G,R通道圖像上單獨(dú)工作。在這種情況下,需要將BGR圖像分割成單個(gè)通道。或者在其他情況下,可能需要將這些單獨(dú)的通道合并到BGR圖像 opencv中有150多種顏色空間轉(zhuǎn)換方法。最廣泛使用的轉(zhuǎn)

    2024年02月13日
    瀏覽(195)
  • 【筆記】OpenCV圖像基本操作

    【筆記】OpenCV圖像基本操作

    目錄 一、圖像屬性 1.1圖像格式 1.2圖像尺寸 1.3圖像分辨率和通道 1.4圖像直方圖 1.5圖像顏色空間 二、基本操作 2.1 圖像讀取 cv2.imread() 2.2 圖像的顯示 cv2.imshow() 2.3 圖像的保存?cv2.imwrite() 2.4 用matplotlib顯示圖像 plt.imshow() 2.5?視頻讀取?cv2.VideoCapture() 2.6 圖像截取、顏色通道提取

    2024年02月03日
    瀏覽(3255)
  • Opencv+Python圖像基本操作

    Opencv+Python圖像基本操作

    目錄 圖像的讀取、顯示和保存 獲取圖像屬性? 圖像截取 ?繪圖功能 畫(huà)線 畫(huà)矩形 畫(huà)圓圈 畫(huà)橢圓 ? ? ? ???畫(huà)多邊形 向圖像添加文本 cv2.imread() ,? cv2.imshow() ,? cv2.imwrite()分別表示讀取圖片,顯示圖片,寫(xiě)入圖片 ? retval = cv2.imread(文件名 [,顯示控制參數(shù)]) cv2.IMREAD_UNCHANGED:不改

    2024年02月04日
    瀏覽(88)
  • opencv基本操作二(讀取視頻流與保存視頻、讀取攝像頭并保存視頻)

    opencv常用 讀視頻函數(shù) cv2.VideoCapture 、 cv2.VideoCapture.get 等,可以參考這里 opencv常用 寫(xiě)視頻函數(shù) cv2.VideoWriter 等可以參考這里 ,其中視頻格式可以參考這里 videoCapture.read() 是按幀讀取視頻, ret,frame 是獲 .read() 方法的兩個(gè)返回值。其中 ret 是布爾值,如果讀取幀是正確的則返回

    2023年04月08日
    瀏覽(379)
  • C# 使用OpenCV基本圖像操作功能

    C# 使用OpenCV基本圖像操作功能

    OpenCV是一個(gè)開(kāi)源的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。C#在上位機(jī)開(kāi)發(fā)中比較常用,有些項(xiàng)目需要在上位機(jī)上加入一些機(jī)器視覺(jué)相關(guān)的功能,在下面簡(jiǎn)單介紹了C#中使用OpenCV庫(kù)的方法。 在管理NuGet包中,搜索OpenCvSharp4,安裝

    2024年02月15日
    瀏覽(89)
  • Python Opencv實(shí)踐 - 基本圖像IO操作
  • OpenCV基本圖像處理操作(十)——圖像特征harris角點(diǎn)

    OpenCV基本圖像處理操作(十)——圖像特征harris角點(diǎn)

    角點(diǎn) 角點(diǎn)是圖像中的一個(gè)特征點(diǎn),指的是兩條邊緣交叉的點(diǎn),這樣的點(diǎn)在圖像中通常表示一個(gè)顯著的幾角。在計(jì)算機(jī)視覺(jué)和圖像處理中,角點(diǎn)是重要的特征,因?yàn)樗鼈兺ǔJ菆D像中信息豐富的區(qū)域,可以用于圖像分析、對(duì)象識(shí)別、3D建模等多種應(yīng)用。 角點(diǎn)的識(shí)別可以幫助在進(jìn)

    2024年04月23日
    瀏覽(103)
  • opencv 圖像和視頻處理的基本操作(python)

    opencv 圖像和視頻處理的基本操作(python)

    原圖: ? 1 圖片的獲取 主要通過(guò)cv2.imread(src)函數(shù)進(jìn)行獲取 2 圖片的顯示 3 ROI區(qū)域(圖片截取) 4 圖片的RGB通道劃分 注意cv2.imread()獲取的圖片通過(guò)順序?yàn)锽GR,而非RGB,即B為0,G為1,R為2 ?保留R通道 ?保留G通道 ? 保留B通道 ? 5 RGB通道合成 ? 6 邊界填充 主要是通過(guò)cv2.copyMakeBo

    2023年04月21日
    瀏覽(90)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包