最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?如何調(diào)用手機(jī)攝像頭

 更新時(shí)間:2024年09月10日 12:16:37   作者:宇宙第一小趴菜  
本文介紹了如何使用Python和OpenCV庫(kù)在電腦上通過(guò)網(wǎng)絡(luò)連接查看和控制安卓手機(jī)攝像頭,詳細(xì)步驟包括安裝IP攝像頭服務(wù)器軟件,在同一局域網(wǎng)中連接手機(jī)和電腦,編寫(xiě)Python腳本捕獲攝像頭數(shù)據(jù),以及保存照片等操作,感興趣的朋友跟隨小編一起看看吧

Python 調(diào)用手機(jī)攝像頭

在手機(jī)上安裝軟件

這里以安卓手機(jī)作為演示,ISO也是差不多的
軟件下載地址 (需要的朋友及時(shí)下載,鏈接有效期3天。)

注意:要想在電腦上查看手機(jī)攝像頭拍攝的內(nèi)容的在一個(gè)局域網(wǎng)里面(沒(méi)有 WIFI 可以使用 熱點(diǎn) )

安裝完打開(kāi)IP攝像頭服務(wù)器

點(diǎn)擊分享查看IP

在這里插入圖片描述

查看局域網(wǎng)的IP

在這里插入圖片描述

用Python的Opencv寫(xiě)一個(gè)代碼來(lái)連接手機(jī)攝像頭

安裝opencv-python

pip install opencv-python

注意

可能安裝庫(kù)太慢可以這樣(這里使用的是清華的鏡像)

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/

保存的照片在當(dāng)前的py文件同級(jí)目錄下面的img里面

手機(jī)橫著,電腦顯示的也是橫著,反之

# 將圖像旋轉(zhuǎn)90度以豎直顯示
img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)   # 5. 旋轉(zhuǎn)圖像

使用

  • ESC: 退出界面
  • 空格: 保存手機(jī)攝像頭的照片

代碼

import cv2
import os
# 創(chuàng)建窗口,設(shè)置為不能改變大小
cv2.namedWindow('camera', cv2.WINDOW_NORMAL)   # 1. 修改窗口屬性,允許改變大小
# 攝像頭設(shè)置,這里使用的是網(wǎng)絡(luò)攝像頭的URL
video = 'http://admin:admin@192.168.1.103:8081'
capture = cv2.VideoCapture(video)   # 2. 初始化攝像頭
# 初始化保存圖片的序號(hào)
p = 1
# 開(kāi)始無(wú)限循環(huán),直到用戶中斷
while True:
    success, img = capture.read()   # 3. 從攝像頭讀取一幀圖像
    if not success:
        print("無(wú)法抓取幀")   # 4. 如果讀取失敗,打印錯(cuò)誤信息并退出循環(huán)
        break
    # 將圖像旋轉(zhuǎn)90度以豎直顯示
    img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)   # 5. 旋轉(zhuǎn)圖像
    # 顯示圖像
    cv2.imshow("camera", img)   # 6. 在窗口中顯示圖像
    # 按鍵處理
    key = cv2.waitKey(10)   # 7. 等待用戶按鍵,10毫秒響應(yīng)一次
    if key == 27:   # 8. 如果按下ESC鍵(ASCII碼為27),退出循環(huán)
        break
    elif key == ord(' '):   # 9. 如果按下空格鍵(ASCII碼為32),保存圖片
        # 保存圖片到當(dāng)前目錄下的img文件夾中
        img_folder = 'img'
        if not os.path.exists(img_folder):
            os.makedirs(img_folder)   # 10. 如果不存在img文件夾,則創(chuàng)建
        img_filename = f"{img_folder}/image_{p}.jpg"   # 11. 生成圖片文件名
        cv2.imwrite(img_filename, img)   # 12. 保存圖片
        print(f"Saved image {p}.jpg")
        p += 1   # 13. 更新圖片序號(hào)
# 釋放攝像頭資源
capture.release()
# 關(guān)閉所有OpenCV創(chuàng)建的窗口
cv2.destroyAllWindows()

注意

video的地址替換為查看局域網(wǎng)的IP時(shí)看到的地址

在這里插入圖片描述

展示效果

電腦端

在這里插入圖片描述

手機(jī)拍攝

在這里插入圖片描述

分辨率低,也就是圖片還是有點(diǎn)模糊

解釋

導(dǎo)入必要的庫(kù)

import cv2
import os

首先,導(dǎo)入cv2模塊(OpenCV庫(kù))用于圖像處理和視頻流操作,以及os模塊用于文件路徑操作。

創(chuàng)建窗口

cv2.namedWindow('camera', cv2.WINDOW_NORMAL)

創(chuàng)建一個(gè)名為camera的窗口,并設(shè)置為可以改變大小。

攝像頭設(shè)置

video = 'http://admin:admin@192.168.1.103:8081'
capture = cv2.VideoCapture(video)

設(shè)置網(wǎng)絡(luò)攝像頭的URL,并初始化攝像頭對(duì)象。

初始化保存圖片的序號(hào)

p = 1

初始化一個(gè)變量p用于保存圖片時(shí)的序號(hào)。

主循環(huán)

while True:

開(kāi)始一個(gè)無(wú)限循環(huán),用于持續(xù)捕獲和處理視頻幀。

讀取視頻幀

success, img = capture.read()

從攝像頭捕獲一幀圖像。success是一個(gè)布爾值,表示是否成功捕獲幀,img是捕獲到的圖像。

圖像旋轉(zhuǎn)

if not success:
    print("無(wú)法抓取幀")
    break
img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)

如果未能成功捕獲幀,則打印錯(cuò)誤信息并退出循環(huán)。成功捕獲后,將圖像旋轉(zhuǎn)90度以豎直方向顯示。

顯示圖像

cv2.imshow("camera", img)

將旋轉(zhuǎn)后的圖像顯示在之前創(chuàng)建的camera窗口中。

按鍵處理

key = cv2.waitKey(10)

等待用戶按鍵操作,如果在10毫秒內(nèi)有按鍵則響應(yīng)。

if key == 27:
    break
elif key == ord(' '):

如果用戶按下ESC鍵(ASCII碼為27),則退出循環(huán)。如果按下空格鍵(ASCII碼為32),則保存當(dāng)前幀為圖片。

保存圖片

img_folder = 'img'
if not os.path.exists(img_folder):
    os.makedirs(img_folder)
img_filename = f"{img_folder}/image_{p}.jpg"
cv2.imwrite(img_filename, img)
print(f"Saved image {p}.jpg")
p += 1

檢查是否存在名為img的文件夾,如果不存在則創(chuàng)建。生成圖片文件名,并將當(dāng)前幀保存為圖片。打印保存圖片的信息,并更新圖片序號(hào)。

釋放資源

capture.release()
cv2.destroyAllWindows()

循環(huán)結(jié)束后,釋放攝像頭資源,并關(guān)閉所有OpenCV創(chuàng)建的窗口。

到此這篇關(guān)于Python 調(diào)用手機(jī)攝像頭的文章就介紹到這了,更多相關(guān)Python 調(diào)用手機(jī)攝像頭內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python時(shí)間和日期庫(kù)的實(shí)現(xiàn)

    Python時(shí)間和日期庫(kù)的實(shí)現(xiàn)

    這篇文章主要介紹了Python時(shí)間和日期庫(kù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python開(kāi)多次方根的案例

    Python開(kāi)多次方根的案例

    這篇文章主要介紹了Python開(kāi)多次方根的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python輕松實(shí)現(xiàn)圖片文字提取的高效技巧分享

    Python輕松實(shí)現(xiàn)圖片文字提取的高效技巧分享

    隨著數(shù)字化轉(zhuǎn)型的加速,從圖片中提取文字(OCR,光學(xué)字符識(shí)別)的需求日益增長(zhǎng),Python憑借其豐富的庫(kù)和易用性,成為實(shí)現(xiàn)OCR的首選工具之一,本文將深入探討如何利用Python從圖片中提取文字,涵蓋基本原理、常用工具、代碼實(shí)現(xiàn)及優(yōu)化技巧,需要的朋友可以參考下
    2025-07-07
  • Python使用ConfigParser解析INI配置文件的完全指南

    Python使用ConfigParser解析INI配置文件的完全指南

    配置文件提供了一種結(jié)構(gòu)化的方式來(lái)管理應(yīng)用程序設(shè)置,比單獨(dú)使用環(huán)境變量更有組織性,INI文件采用簡(jiǎn)單的基于部分的格式,既易于閱讀又易于解析,Python內(nèi)置的configparser模塊使處理這些文件變得簡(jiǎn)單而強(qiáng)大,需要的朋友可以參考下
    2025-10-10
  • python軟件測(cè)試Jmeter性能測(cè)試JDBC Request(結(jié)合數(shù)據(jù)庫(kù))的使用詳解

    python軟件測(cè)試Jmeter性能測(cè)試JDBC Request(結(jié)合數(shù)據(jù)庫(kù))的使用詳解

    這篇文章主要介紹了python軟件測(cè)試Jmeter性能測(cè)試JDBC Request(結(jié)合數(shù)據(jù)庫(kù))的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn)

    Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn)

    本文主要介紹了Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Python 日期與時(shí)間轉(zhuǎn)換的方法

    Python 日期與時(shí)間轉(zhuǎn)換的方法

    這篇文章主要介紹了Python 日期與時(shí)間轉(zhuǎn)換的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法

    Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法

    SyntaxError: invalid syntax 這個(gè)報(bào)錯(cuò)經(jīng)常遇見(jiàn),但是總感覺(jué)自己的代碼沒(méi)有問(wèn)題,根據(jù)報(bào)錯(cuò)提示的行也找不到錯(cuò)誤,這些情況以及解決方法都有哪些呢?這篇文章主要給大家介紹了關(guān)于Python一直報(bào)錯(cuò)SyntaxError:invalid?syntax的解決辦法,需要的朋友可以參考下
    2022-09-09
  • Python PyQt5實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器功能示例

    Python PyQt5實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器功能示例

    這篇文章主要介紹了Python PyQt5實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器功能,涉及Python PyQt5事件響應(yīng)及數(shù)學(xué)運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python推導(dǎo)式簡(jiǎn)單示例【列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式】

    Python推導(dǎo)式簡(jiǎn)單示例【列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式】

    這篇文章主要介紹了Python推導(dǎo)式,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式基本使用方法,需要的朋友可以參考下
    2018-12-12

最新評(píng)論

漠河县| 会泽县| 读书| 雷波县| 磐石市| 新密市| 息烽县| 黔西县| 鄢陵县| 金昌市| 北碚区| 岢岚县| 全椒县| 扶余县| 潼南县| 资源县| 无锡市| 邛崃市| 城口县| 凭祥市| 澎湖县| 永丰县| 木里| 石首市| 台东市| 石屏县| 鄯善县| 东至县| 五莲县| 乌什县| 南郑县| 晋宁县| 修文县| 莱阳市| 灵山县| 资溪县| 南乐县| 手游| 德保县| 云林县| 高要市|