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

python opencv通過按鍵采集圖片源碼

 更新時(shí)間:2021年05月20日 09:34:46   作者:翟羽嚄  
OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上,本文給大家分享python opencv通過按鍵采集圖片源碼,感興趣的朋友一起看看吧

一、python版本

寫了個(gè)python opencv的小demo,可以通過鍵盤按下字母s進(jìn)行采集圖像。

功能說明

“N” 新建文件夾 data/ 用來存儲(chǔ)圖像
“S” 開始采集圖像,將采集到的圖像放到 data/ 路徑下
“Q” 退出窗口

python opencv源碼

'''

“N”  新建文件夾 data/  用來存儲(chǔ)圖像
"S"   開始采集圖像,將采集到的圖像放到 data/ 路徑下
“Q”   退出窗口
'''

import numpy as np  # 數(shù)據(jù)處理的庫 Numpy
import cv2          # 圖像處理的庫 OpenCv
import os           # 讀寫文件
import shutil       # 讀寫文件
from PIL import Image, ImageDraw, ImageFont


# # OpenCv 調(diào)用攝像頭 / Use camera
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)

'''
#功能函數(shù),只是用來往圖片中顯示漢字
#示例 img = cv2ImgAddText(cv2.imread('img1.jpg'), "大家好,我是片天邊的云彩", 10, 65, (0, 0, 139), 20)
參數(shù)說明:
img:OpenCV圖片格式的圖片
text:要寫入的漢字
left:字符坐標(biāo)x值
top:字符坐標(biāo)y值
textColor:字體顏色
:textSize:字體大小
'''
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    if (isinstance(img, np.ndarray)):  # 判斷是否OpenCV圖片類型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    # 創(chuàng)建一個(gè)可以在給定圖像上繪圖的對(duì)象
    draw = ImageDraw.Draw(img)
    # 字體的格式
    fontStyle = ImageFont.truetype(
        "font/simsun.ttc", textSize, encoding="utf-8")
    # 繪制文本
    draw.text((left, top), text, textColor, font=fontStyle)
    # 轉(zhuǎn)換回OpenCV格式
    return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

# 存儲(chǔ)圖像的文件夾 
current_dir = ""
# 保存  圖像 的路徑 
path_photos_from_camera = "data/"

press_n_flag = 0
cnt_ss=0



while cap.isOpened():
    flag, img_rd = cap.read()
    #print(img_rd.shape)

    kk = cv2.waitKey(2)
    # 待會(huì)要寫的字體 / Font to write
    font = cv2.FONT_ITALIC

    # 4. 按下 'n' 新建存儲(chǔ)人臉的文件夾 / press 'n' to create the folders for saving faces
    if kk == ord('N') or kk == ord('n'):
        current_dir = path_photos_from_camera
        #os.makedirs(current_dir)
        if os.path.isdir(current_dir):
            pass
        else:
            os.mkdir(current_dir)
        print('\n')
        print("新建的保存圖像的文件夾 / Create folders: ", current_dir)

        press_n_flag = 1        # 已經(jīng)按下 'n' / have pressed 'n'


    # 5. 按下 's' 保存攝像頭中的圖像到本地 / Press 's' to save image into local images
    if kk == ord('S') or kk == ord('s'):
        # 檢查有沒有先按'n'新建文件夾 / check if you have pressed 'n'
        if press_n_flag:
            cnt_ss += 1
            cv2.imwrite(current_dir + "/img_" + str(cnt_ss) + ".jpg", img_rd)
            print("寫入本地 / Save into:", str(current_dir) + "/img_face_" + str(cnt_ss) + ".jpg")
        else:
            print("請(qǐng)?jiān)诎?'S' 之前先按 'N' 來建文件夾 / Please press 'N' before 'S'")


    # 添加說明 / Add some statements
    #cv2.putText(img_rd, "Face Register", (20, 40), font, 1, (0, 255, 0), 1, cv2.LINE_AA)
    img_rd = cv2ImgAddText(img_rd, "圖片采集系統(tǒng)", 160, 25, (0, 255,0), 30)
    #cv2.putText(img_rd, "N: Create face folder", (20, 350), font, 0.8, (0, 255, 0), 1, cv2.LINE_AA)
    img_rd = cv2ImgAddText(img_rd, "N: 創(chuàng)建保存圖像文件夾", 20, 350, (0, 255, 0), 20)
    #cv2.putText(img_rd, "S: Save current face", (20, 400), font, 0.8, (0, 255, 0), 1, cv2.LINE_AA)
    img_rd = cv2ImgAddText(img_rd, "S: 保存當(dāng)前圖片", 20, 400, (0, 255, 0), 20)
    #cv2.putText(img_rd, "Q: Quit", (20, 450), font, 0.8, (0, 0, 0), 1, cv2.LINE_AA)
    img_rd = cv2ImgAddText(img_rd, "Q: 退出", 20, 450, (0, 255, 0), 20)

    # 6. 按下 'Q' 鍵退出 / Press 'q' to exit
    if kk == ord('Q') or kk == ord('q'):
        break
    # 如果需要攝像頭窗口大小可調(diào) / Uncomment this line if you want the camera window is resizeable
    cv2.namedWindow("camera", 0)
    cv2.imshow("camera", img_rd)

# 釋放攝像頭 / Release camera and destroy all windows
cap.release()
cv2.destroyAllWindows()

效果圖

在這里插入圖片描述

安裝相關(guān)庫

windows安裝

pip install pillow

tx2/linux/…

sudo apt-get install python3-pillow

二、c語言版本

 c語言源碼

/*****************************************************
2021.5.18:按鍵采集圖像
******************************************************/
#include "opencv2/core/core.hpp"    
#include "opencv2/imgproc/imgproc.hpp"    
#include "opencv2/calib3d/calib3d.hpp"    
#include "opencv2/highgui/highgui.hpp"    
#include <iostream>    
#include <fstream>    

using namespace cv;
using namespace std;

#define SRC_WIDTH  1920
#define SRC_HEIGHT 1080

int main()
{
	//測(cè)試視頻
	VideoCapture capture;
	capture.open(1);
	//capture.open("v4l2src device=/dev/video4 ! video/x-raw,width=1920,height=1020,framerate=30/1 ! videoconvert ! appsink");
	if (!capture.isOpened())
	{
		printf("文件打開失敗");
	}
	capture.set(CAP_PROP_FRAME_WIDTH, SRC_WIDTH);        //設(shè)置寬度
	capture.set(CAP_PROP_FRAME_HEIGHT, SRC_HEIGHT);  //設(shè)置長度
	Mat frame;
	int n = 0;
	char* cstr = new char[120];
	while (true)
	{
		
		capture >> frame;
		if (frame.data == NULL)
		{
			printf("Image is empty\n");
			//writer.write(frame);
			break;
			//continue;
		}
		char kk=waitKey(2);
		if (kk == 'S' || kk == 's')
		{

			sprintf(cstr, "%s%d%s", "caliberation/", n++, ".jpg");
			imwrite(cstr, frame);
			printf("保存了圖片\n");

		}

		
		namedWindow("111", 0);//參數(shù)為零,則可以自由拖動(dòng)
		imshow("111", frame);
		waitKey(2);
	}

	return 0;

}

效果圖

在這里插入圖片描述

到此這篇關(guān)于opencv通過按鍵采集圖片源碼的文章就介紹到這了,更多相關(guān)opencv按鍵采集圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python寫入并獲取剪切板內(nèi)容的實(shí)例

    python寫入并獲取剪切板內(nèi)容的實(shí)例

    今天小編就為大家分享一篇python寫入并獲取剪切板內(nèi)容的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 詳解Python中四種關(guān)系圖數(shù)據(jù)可視化的效果對(duì)比

    詳解Python中四種關(guān)系圖數(shù)據(jù)可視化的效果對(duì)比

    python關(guān)系圖的可視化主要就是用來分析一堆數(shù)據(jù)中,每一條數(shù)據(jù)的節(jié)點(diǎn)之間的連接關(guān)系從而更好的分析出人物或其他場(chǎng)景中存在的關(guān)聯(lián)關(guān)系。本文將制作四個(gè)不同的關(guān)系圖的可視化效果,感興趣的可以了解一下
    2022-11-11
  • Python實(shí)現(xiàn)批量執(zhí)行同目錄下的py文件方法

    Python實(shí)現(xiàn)批量執(zhí)行同目錄下的py文件方法

    今天小編就為大家分享一篇Python實(shí)現(xiàn)批量執(zhí)行同目錄下的py文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 跟老齊學(xué)Python之一個(gè)免費(fèi)的實(shí)驗(yàn)室

    跟老齊學(xué)Python之一個(gè)免費(fèi)的實(shí)驗(yàn)室

    學(xué)習(xí)Python也要做實(shí)驗(yàn),也就是嘗試性地看看某個(gè)命令到底什么含義。在《集成開發(fā)環(huán)境(IDE)》一章中,我們介紹了Python的IDE時(shí),給大家推薦了IDLE,進(jìn)入到IDLE中,看到>>>符號(hào),可以在后面輸入一行指令。其實(shí),這就是一個(gè)非常好的實(shí)驗(yàn)室。
    2014-09-09
  • python調(diào)用xlsxwriter創(chuàng)建xlsx的方法

    python調(diào)用xlsxwriter創(chuàng)建xlsx的方法

    今天小編就為大家分享一篇python調(diào)用xlsxwriter創(chuàng)建xlsx的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 使用實(shí)現(xiàn)pandas讀取csv文件指定的前幾行

    使用實(shí)現(xiàn)pandas讀取csv文件指定的前幾行

    下面小編就為大家分享一篇使用實(shí)現(xiàn)pandas讀取csv文件指定的前幾行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python實(shí)現(xiàn)端口掃描器的示例代碼

    Python實(shí)現(xiàn)端口掃描器的示例代碼

    本文主要介紹了Python實(shí)現(xiàn)端口掃描器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Python操作Sql Server 2008數(shù)據(jù)庫的方法詳解

    Python操作Sql Server 2008數(shù)據(jù)庫的方法詳解

    這篇文章主要介紹了Python操作Sql Server 2008數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式分析了Python使用pyodbc庫操作Sql Server 2008數(shù)據(jù)庫的連接、執(zhí)行sql語句、關(guān)閉連接等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • 利用python合并csv文件的方式實(shí)例

    利用python合并csv文件的方式實(shí)例

    由于項(xiàng)目取數(shù)需要,要將兩個(gè)不同的csv文件合并到一個(gè)文件中,所以下面這篇文章主要給大家介紹了關(guān)于利用python合并csv文件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python使用shutil模塊實(shí)現(xiàn)文件拷貝

    Python使用shutil模塊實(shí)現(xiàn)文件拷貝

    這篇文章主要介紹了Python使用shutil模塊實(shí)現(xiàn)文件拷貝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

嘉兴市| 田阳县| 黑河市| 平昌县| 彭阳县| 西乌| 增城市| 东乡县| 亚东县| 赤城县| 萝北县| 昌吉市| 修文县| 连城县| 普安县| 安福县| 芜湖县| 朝阳区| 柘城县| 西安市| 武城县| 浏阳市| 城市| 信阳市| 上思县| 玉门市| 龙州县| 皋兰县| 治多县| 新闻| 林西县| 米林县| 蓬莱市| 伊宁市| 安西县| 剑川县| 黎平县| 荃湾区| 罗甸县| 宁都县| 白沙|