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

OpenCV圖像處理基本操作詳解

 更新時間:2021年03月05日 08:14:10   作者:凌花錢  
這篇文章主要為大家詳細介紹了OpenCV圖像處理基本操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了OpenCV圖像處理基本操作的具體代碼,供大家參考,具體內容如下

圖像的讀取

cv2.IMREAD_COLOR 彩色圖像
cv2.IMREAD_GRAYSCALE 灰色圖像

import cv2#opencv 的讀取格式是BGR
import matplotlib.pyplot as plt
import numpy as np

#圖像的顯示,也可以創(chuàng)建多個窗口
img=cv2.imread('tu.jpg')
cv2.imshow('name',img)
#等待時間毫秒級,0表示任意鍵終止
cv2.waitKey(0)
cv2.destroyAllWindows()

#顏色通道提取
b,g,r=cv2.split(img)
print(b)
print(b.shape)
#顏色通道融合
img=cv2.merge((b,g,r))
print(img.shape)
#可以將其余兩通道全部置零,保留一個顏色通道
cur_img=img.copy()
cur_img[:,:,0]=0#BRG
cur_img[:,:,1]=0
cv2.imshow('cur_img',cur_img)

邊界填充

BORDER_REPLICATE:復制法,也就是復制最邊緣像素
BORDER_REFLECT:反射法,對感興趣的圖片中的像素的兩邊進行復制:cba|abc|cba
BORDER_REFLECT_101:反射法,對稱,cb|abcd|cda
BORDER_WRAP:外包裝法abc|abc|abc
BORDER_CONSTANT:常量法常數填充

top_size,bottom_size,left_size,right_size=(50,50,50,50)
replicate=cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)
reflect=cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT)
reflect101=cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT_101)
wrap=cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_WRAP)
constant=cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_CONSTANT,value=0)

#將圖片畫出對比
plt.subplot(231),plt.imshow(img,'gray'),plt.title('GRIGNAAL')
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(wrap,'gray'),plt.title('wrap')
plt.subplot(235),plt.imshow(constant,'gray'),plt.title('constant')
plt.show()

視頻的讀取

#視頻的讀取 cv2.VideoCapture 可以捕獲攝像頭,用數字來捕獲不同設備,列如0,1 如果是視頻文件直接指定好路徑即可
vc=cv2.VideoCapture('IMG_1972.mp4')
#檢測是否打開正確
if vc.isOpened():
 open,frame=vc.read()
else:
 open=False

while open:#一幀一幀的處理為灰色
 ret,frame=vc.read()
 if frame is None:
 break
 if ret==True:
 gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #一幀一幀的處理為灰色
 cv2.imshow('result',gray)
 if cv2.waitKey(100) & 0xFF==27:
  break
vc.release()
cv2.destroyAllWindows() 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 適合初學者的C語言轉義字符講解

    適合初學者的C語言轉義字符講解

    轉義字符是很多程序語言、數據格式和通信協(xié)議的形式文法的一部分。對于一個給定的字母表,一個轉義字符的目的是開始一個字符序列,使得轉義字符開頭的該字符序列具有不同于該字符序列單獨出現(沒有轉義字符開頭)時的語義。因此轉義字符開頭的字符序列被叫做轉義序列
    2022-04-04
  • Qt5.9實現簡單復合圖形

    Qt5.9實現簡單復合圖形

    這篇文章主要為大家詳細介紹了Qt5.9實現簡單復合圖形,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++異常重拋出實例分析

    C++異常重拋出實例分析

    在本文里小編給大家分享的是關于C++異常重拋出實例分析,有興趣點朋友們可以跟著學習下。
    2020-05-05
  • 基于樹莓派實現播放MP3音樂

    基于樹莓派實現播放MP3音樂

    這篇文章主要為大家詳細介紹了基于樹莓派實現播放MP3音樂,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 深入淺析C++中的#,##,和

    深入淺析C++中的#,##,和

    這篇文章主要介紹了C++中的#,##,和"的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • VSCode插件開發(fā)全攻略之命令、菜單、快捷鍵

    VSCode插件開發(fā)全攻略之命令、菜單、快捷鍵

    這篇文章主要介紹了VSCode插件開發(fā)全攻略之命令、菜單、快捷鍵,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • C/C++ 實現簡易HTTP服務器的示例

    C/C++ 實現簡易HTTP服務器的示例

    這篇文章主要介紹了C/C++ 實現簡易HTTP服務器的示例,幫助大家更好的理解和學習C/C++編程,感興趣的朋友可以了解下
    2020-10-10
  • Qt基于QScrollArea實現界面嵌套移動

    Qt基于QScrollArea實現界面嵌套移動

    在實際的應用場景中,經常會出現軟件界面戰(zhàn)場圖大于實際窗體大小。本文將利用QScrollArea可以為widget窗體添加滾動條,實現界面嵌套移動,感興趣的可以了解一下
    2022-06-06
  • C語言學習之函數知識總結

    C語言學習之函數知識總結

    函數是一組一起執(zhí)行一個任務的語句。每個?C?程序都至少有一個函數,即主函數?main()?,所有簡單的程序都可以定義其他額外的函數。本文就為大家詳細講講C語言中函數的相關知識點,希望有所幫助
    2022-07-07
  • 簡單比較C語言中的execl()函數與execlp()函數

    簡單比較C語言中的execl()函數與execlp()函數

    這篇文章主要介紹了C語言中的execl()函數與execlp()函數的簡單比較,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-08-08

最新評論