投稿

ラベル(WebCam)が付いた投稿を表示しています

Python OpenCVとWebカメラでバーコードリーダー

これがやってみたかった。 QRコードリーダーをOpenCVとTkinterで作る 一次元バーコードも認識するみたい。 pyzbarをインストール pip install pyzbar """ OpenCVの動画取得機能を利用し、TkのCanvasに描画して、QRコードを認識させるプログラム """ from datetime import datetime from time import sleep import tkinter import cv2 from PIL import Image, ImageTk from pyzbar import pyzbar root = tkinter.Tk() root.title("QR reader") root.geometry("640x480") CANVAS_X = 640 CANVAS_Y = 480 # Canvas作成 canvas = tkinter.Canvas(root, width=CANVAS_X, height=CANVAS_Y) canvas.pack() # VideoCaptureの引数にカメラ番号を入れる。 # デフォルトでは0、ノートPCの内臓Webカメラは0、別にUSBカメラを接続した場合は1を入れる。 cap = cv2.VideoCapture(0) def show_frame(): global CANVAS_X, CANVAS_Y ret, frame = cap.read() if ret == False: print('カメラから画像を取得できませんでした') image_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # BGRなのでRGBに変換 image_pil = Image.fromarray(image_rgb) # RGBからPILフォーマットへ変換 image_tk = ImageTk.PhotoImage(image_pil) # ImageTkフォーマットへ変換 # image_t...

PythonでWEBカメラで動画を撮影し保存

動画を扱う こちらのサンプルを動かしてみた。 cv2.flip(frame,0)で画像を反転しているみたい。 import numpy as np import cv2 cap = cv2.VideoCapture(0) # Define the codec and create VideoWriter object fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480)) while(cap.isOpened()): ret, frame = cap.read() if ret==True: #frame = cv2.flip(frame,0) # write the flipped frame out.write(frame) cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break else: break # Release everything if job is finished cap.release() out.release() cv2.destroyAllWindows()

PythonでWebカメラで撮った画像を保存

これを使うと、製品出荷時のエビデンスとして画像記録を保存する場合などに使えそう。 以下でタイムスタンプ付きで画像を保存する。 import numpy as np import cv2 import datetime cap = cv2.VideoCapture(0) print("width:" + str(cap.get(3)) + " height:" + str(cap.get(4)) ) # Capture frame-by-frame ret, frame = cap.read() ## Our operations on the frame come here #gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # Display the resulting frame cv2.imshow('frame',gray) cv2.imwrite("img" + datetime.datetime.now().strftime('%Y%m%d%H%M%S')+'.png',frame) #画像を保存 # When everything done, release the capture cap.release() cv2.destroyAllWindows()

PythonでWebカメラの画像を取り込む

Python+OpenCVでWebカメラの画像を取り込んで処理して表示する話 こちらのサイトを参考にした。 opencvをインストールする pip install opencv-python リンク先の以下のコードを実行 うまいことWEBカメラの画像が取り込めた。画像認識やバーコード読込に使ってみたい。 # OpenCV のインポート import cv2 # VideoCaptureのインスタンスを作成する。 # 引数でカメラを選べれる。 cap = cv2.VideoCapture(0) while True: # VideoCaptureから1フレーム読み込む ret, frame = cap.read() # スクリーンショットを撮りたい関係で1/4サイズに縮小 frame = cv2.resize(frame, (int(frame.shape[1]/4), int(frame.shape[0]/4))) # 加工なし画像を表示する cv2.imshow('Raw Frame', frame) # 何か処理(ここでは文字列「hogehoge」を表示する) edframe = frame cv2.putText(edframe, 'hogehoge', (0,50), cv2.FONT_HERSHEY_PLAIN, 3, (0, 255,0), 3, cv2.LINE_AA) # 加工済の画像を表示する cv2.imshow('Edited Frame', edframe) # キー入力を1ms待って、k が27(ESC)だったらBreakする k = cv2.waitKey(1) if k == 27: break # キャプチャをリリースして、ウィンドウをすべて閉じる cap.release() cv2.destroyAllWindows()