在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣在樹莓派上使用圖像處理程序OpenCV來讀取顯示和寫入圖像

454398 ? 來源:工程師吳畏 ? 2019-07-30 09:57 ? 次閱讀

教程重點介紹如何在Raspberry上使用OpenCV Pi可以讀取,顯示和寫入圖像。這是開始使用OpenCV時需要了解的基本內(nèi)容之一,也是最常用的代碼部分之一。

如果您希望創(chuàng)建一個在家中漫游并在您不在家時拍照的監(jiān)控機(jī)器人,那么本教程是您需要采取的首要步驟之一。

讓我們首先瀏覽用于讀取,顯示和保存圖像的每個函數(shù)。然后,我們可以編寫代碼,以便我們的程序使用Pi相機(jī)來檢測面部,在檢測到的面部周圍創(chuàng)建一個矩形,然后拍攝一張照片。

在Raspberry Pi上使用OpenCV讀取圖像

用于讀取圖像的函數(shù)是 cv2.imread()。此函數(shù)有兩個參數(shù)。

第一個參數(shù)采用圖像的名稱。如果圖像在工作目錄中,那么您只需編寫其名稱即可。否則,你必須給出圖像的完整路徑。

第二個參數(shù)采用告訴程序應(yīng)該如何讀取圖像的標(biāo)志。

1或cv2.IMREAD_COLOR 加載彩色圖像。它使用默認(rèn)顏色并忽略圖像透明度。

0或cv2.IMREAD_GRAYSCALE 加載灰度圖像。

-1或cv2。 IMREAD_UNCHANGED 加載圖像,包括alpha通道。

image = cv2.imread(‘obama.jpg’, 0)

or

image = cv2.imread(‘obama.jpg’, cv2.IMREAD_GRAYSCALE)

我們可以使用上面任何一行來讀取圖像。

使用Raspberry Pi在OpenCV中顯示圖像

用于顯示圖像的函數(shù)是 cv2.imshow()。此函數(shù)還有兩個參數(shù):第一個參數(shù)是窗口名稱,第二個參數(shù)是圖像的名稱。

注意:您無法更改此函數(shù)創(chuàng)建的窗口的大小。

還有一個函數(shù)( cv2.namedWindow())可用于創(chuàng)建窗口,然后使用 cv2.imshow()來顯示圖像在里面。您將能夠以這種方式調(diào)整圖像大小。

cv2.namedWindow(‘Obama’, cv2.WINDOW_NORMAL)

cv2.imshow(‘Obama’, image)

使用Raspberry Pi在OpenCV中寫入圖像

寫入圖像的函數(shù)是 cv2.imwrite(),它還有兩個參數(shù):第一個參數(shù)是圖像文件名(圖像將以此文件名保存),第二個參數(shù)是您要保存的圖像的名稱。

您還可以將圖像保存為其他格式,如下一行將JPG圖像更改為PNG格式。

cv2.imwrite(‘newobama.png’, image)

讀取,顯示和寫入圖像的Python代碼

運(yùn)行代碼后,會出現(xiàn)類似下面的輸出窗口。如果按‘s’,程序會以灰度格式保存圖像,但如果按ESC鍵,它將退出窗口而不保存圖像。

# Import OpenCV library

import cv2

# Load color image in grayscale

image = cv2.imread(‘obama.jpg’, 0)

#or

#image = cv2.imread(‘obama.jpg’, cv2.IMREAD_GRAYSCALE)。

# Create the resizeable window

cv2.namedWindow(‘Obama’, cv2.WINDOW_NORMAL)

# Display the image

cv2.imshow(‘Obama’, image)

# Wait until we get a key

k=cv2.waitKey(0)

# If pressed key is ‘s’

if k == ord(‘s’):

# Save the image

cv2.imwrite(‘convertedimage.jpg’, image)

# Destroy all windows

cv2.destroyAllWindows()

# If pressed key is ESC

elif k == 27:

# Destroy all windows

cv2.destroyAllWindows()

cv2.waitkey()是一個鍵盤綁定功能,等待任何鍵盤事件的指定時間。它需要一個參數(shù),即以毫秒為單位的時間。如果在指定的時間范圍內(nèi)按下該鍵,程序?qū)⒗^續(xù)。傳遞0意味著它將無限期地等待一個鍵。

cv2.destroyAllWindows()函數(shù)會破壞所有打開的窗口。如果要銷毀特定窗口,請使用 cv2.destroyWindow()并將窗口名稱作為參數(shù)傳遞。

在Raspberry Pi上使用OpenCV捕獲圖像和檢測面

現(xiàn)在根據(jù)我們學(xué)到的東西,讓我們編寫一個演示代碼,在代碼被檢測到之前一直持續(xù)觀察。在檢測到面部后,它將在該面周圍形成一個矩形并保存圖像。

# import the necessary packages

from picamera.array import PiRGBArray

from picamera import PiCamera

import cv2

import numpy as np

# initialize the camera and grab a reference to the raw camera capture

camera = PiCamera()

camera.resolution = (640, 480)

camera.framerate = 30

rawCapture = PiRGBArray(camera, size=(640, 480))

# Load a cascade file for detecting faces

face_cascade = cv2.CascadeClassifier(“haarcascade_frontalface_default.xml”);

# capture frames from the camera

for frame in camera.capture_continuous(rawCapture, format=“bgr”, use_video_port=True):

# grab the raw NumPy array representing the image, then initialize the timestamp

# and occupied/unoccupied text

image = frame.array

# Convert to grayscale

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

# Look for faces in the image using the loaded cascade file

faces = face_cascade.detectMultiScale(gray, 1.1, 5)

# Show the frame

cv2.imshow(“Frame”, image)

# Wait for key

key = cv2.waitKey(1) & 0xFF

# clear the stream in preparation for the next frame

rawCapture.truncate(0)

faceDetected = False

# Draw a rectangle around every found face

for (x,y,w,h) in faces:

faceDetected = True

# Create rectangle around the face

cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,0),2)

# Save the image

cv2.imwrite(“result.jpg”, image)

if faceDetected == True:

break

cv2.destroyAllWindows()

嘗試運(yùn)行此代碼,您應(yīng)該能夠看到寫入相應(yīng)目錄的新圖像文件突出顯示圖片中的一個面。

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

    關(guān)注

    32

    文章

    642

    瀏覽量

    42538
  • 樹莓派
    +關(guān)注

    關(guān)注

    121

    文章

    1963

    瀏覽量

    107081
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    基于LockAI視覺識別模塊:C++圖像的基本運(yùn)算

    圖像處理中,理解圖像的基本操作是掌握計算機(jī)視覺技術(shù)的關(guān)鍵。本文章將介紹 基于LockAI視覺識別模塊下OpenCV
    發(fā)表于 05-06 16:56

    基于LockAI視覺識別模塊:C++圖像采集例程

    本文主要演示如何使用LockAI視覺識別模塊進(jìn)行視頻流的讀取,同時使用Edit模塊進(jìn)行圖像傳輸。基礎(chǔ)知識講解1.1OpenCV簡介OpenCV(OpenSourceComputerVi
    的頭像 發(fā)表于 04-30 18:23 ?153次閱讀
    基于LockAI視覺識別模塊:C++<b class='flag-5'>圖像</b>采集例程

    DFT圖像處理中的作用 DFT音頻信號處理中的應(yīng)用

    處理中的幾個主要作用: 頻域濾波 :DFT允許我們分析圖像的頻率成分,從而可以設(shè)計濾波器增強(qiáng)或抑制特定頻率的信號,例如低通濾波器可以減少圖像噪聲,而高通濾波器可以增強(qiáng)邊緣。
    的頭像 發(fā)表于 12-20 09:18 ?1177次閱讀

    傅立葉變換圖像處理中的作用

    傅里葉變換圖像處理中發(fā)揮著至關(guān)重要的作用。以下是傅里葉變換圖像處理中的幾個主要作用: 一、
    的頭像 發(fā)表于 12-06 16:55 ?2099次閱讀

    基于OpenCV的拆分和合并圖像通道實驗案例分享_基于RK3568教學(xué)實驗箱

    一、實驗?zāi)康?本節(jié)視頻的目的是了解圖像通道的概念,學(xué)習(xí)OpenCV的基本操作,并掌握通過OpenCV實現(xiàn)拆分和合并圖像通道的方法。 二、實驗原理 拆分與合并
    發(fā)表于 12-03 14:27

    百問FB顯示開發(fā)圖像處理 - JPEG圖像處理

    2.2 JPEG圖像處理 2.2.1 JPEG文件格式和libjpeg編譯 ?JPEG的后綴名為.jpg的圖像文件。對于圖像內(nèi)容和信息相同的JPEG文件和BMP文件,JPEG格式的文件
    發(fā)表于 11-28 13:57

    百問FB顯示開發(fā)圖像處理 - BMP圖像處理

    2 圖像處理 ?前言:所有的圖像文件,都是一種二進(jìn)制格式文件,每一個圖像文件,都可以通過解析文件中的每一組二進(jìn)制數(shù)的含義獲得文件中的各種信
    發(fā)表于 11-28 13:52

    OpenCV教程之OpenCV圖像閾值處理

    閾值的基本概念是為了簡化圖像以進(jìn)行分析。當(dāng)我們將圖像轉(zhuǎn)換為灰度圖像時,必須記住灰度圖像仍然至少有255個值。閾值是將所有內(nèi)容轉(zhuǎn)換為白色或黑色的值,基于閾值。假設(shè)我們希望閾值為125(2
    的頭像 發(fā)表于 11-16 10:16 ?590次閱讀
    <b class='flag-5'>OpenCV</b>教程之<b class='flag-5'>OpenCV</b><b class='flag-5'>圖像</b>閾值<b class='flag-5'>處理</b>

    FPGA圖像處理領(lǐng)域的優(yōu)勢有哪些?

    FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)圖像處理領(lǐng)域具有顯著的優(yōu)勢,這些優(yōu)勢主要體現(xiàn)在以下幾個方面: 一、高并行處理能力 FPGA內(nèi)部
    發(fā)表于 10-09 14:36

    DSP教學(xué)實驗箱_數(shù)字圖像處理操作_案例分享:5-13 灰度圖像二值化

    一、實驗?zāi)康?學(xué)習(xí)灰度圖像二值化的原理,掌握圖像讀取方法,并實現(xiàn)在LCD上顯示二值化前后的圖像。 二、實驗原理
    發(fā)表于 07-25 15:03

    基于DSP C6000教學(xué)實驗箱_數(shù)字圖像處理教程:5-9 圖像反色實驗案例分享

    的Console窗口會打印相關(guān)信息。 稍等片刻后,圖像處理完成,程序執(zhí)行完成后會在斷點處停下。 可以通過 CCS 的圖像顯示窗口查看
    發(fā)表于 07-19 09:57

    OpenCV圖像識別C++代碼

    的頭文件 您的C++代碼中,包含以下必要的頭文件: # include # include # include # include # include # include # include 讀取圖像
    的頭像 發(fā)表于 07-16 10:42 ?4089次閱讀

    opencv圖像識別有什么算法

    OpenCV(Open Source Computer Vision Library)是一個開源的計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,提供了大量的圖像處理和計算機(jī)視覺相關(guān)的算法。以下是一些常見的Ope
    的頭像 發(fā)表于 07-16 10:40 ?1806次閱讀

    opencv的主要功能有哪些

    OpenCV提供了豐富的圖像處理功能,包括圖像讀取顯示、保存、轉(zhuǎn)換等。此外,
    的頭像 發(fā)表于 07-16 10:35 ?2664次閱讀

    DSP C6000教學(xué)實驗箱操作教程_數(shù)字圖像處理:5-3 圖像縮放

    一、實驗?zāi)康?學(xué)習(xí)圖像縮放的原理,掌握圖像讀取方法,并實現(xiàn)圖像縮放。 二、實驗原理 圖像縮放
    發(fā)表于 06-20 11:28
    主站蜘蛛池模板: 色在线视频播放 | 一区二区三区四区在线观看视频 | 免费大片a一级一级 | 欧美视频在线观在线看 | 日韩高清性爽一级毛片免费 | 久久人人视频 | 美脚连裤袜老师正在播放 | 国产大片免费观看中文字幕 | 国产精品欧美久久久久天天影视 | 色女仆影院 | 午夜欧美精品久久久久久久 | 在线中文字幕一区 | 麻豆国产三级在线观看 | 五月月色开心婷婷久久合 | 欧美一级在线观看 | 免费被视频网站在线观看 | 国产一区二区在线观看免费 | 欧美极品第一页 | 特级黄色毛片 | 手机看片国产福利 | 在线视频三区 | 国产一级aaa全黄毛片 | 亚色网站 | 亚洲情a成黄在线观看 | 久久综合欧美成人 | 久久综合久色欧美婷婷 | 91精品国产91久久久久青草 | 国内精品久久久久久久久蜜桃 | 国产色婷婷精品综合在线观看 | 喷潮白浆 | 久久在草 | 欧美色视频日本 | 国产毛片久久久久久国产毛片 | 性中国videosex国产孕妇 | 日本丝瓜着色视频 | 国产handjob手交在线播放 | 在线免费影视 | 国产高清免费在线 | 国产乱理论片在线观看理论 | 788gao这里只有精品 | 综合第一页 |