pythonのsum()を使うと複雑なリストを1次元リストにできる リンクを取得 Facebook Twitter Pinterest メール 他のアプリ 3月 19, 2020 便利 a=[[1,2,3],[4,5,6]] b = sum(a,[]) print(b) #[1, 2, 3, 4, 5, 6] リンクを取得 Facebook Twitter Pinterest メール 他のアプリ コメント
Python OpenCVとWebカメラでバーコードリーダー 3月 17, 2020 これがやってみたかった。 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 続きを読む
OpenCV 画像の足し算 3月 14, 2020 画像の足し算 #画像の足し算は,OpenCVの関数 cv2.add() を使う, #もしくはNumpyの処理によってビット数,データ型が同じ #2枚の画像を res = img1 + img2 と足すか, #res = img + value のように画像全体を明るくする方法があります. # #OpenCVとNumpyの足し算は和の値が画素値の上限値を超えた時の処理が異なります. #OpenCVの cv2.add() 関数を使った場合,上限値を超える和の値は #res = min(img1+img2, MAX)``の ように打ち切られます. #一方でNumpyの足し算はモジュロを取った値に ``res = (img1+img2) mod MAX となります. # #この現象は2枚の画像を足し合わせた時によりはっきり確認できます. #OpenCVの足し算を使った方がよい結果になるでしょう. #常にOpenCVの関数を使うと良いでしょう. import cv2 import numpy as np x = np.uint8([250]) y = np.uint8([10]) print( cv2.add(x,y)) # 250+10 = 260 => 255 print( x+y ) # 250+10 = 260 % 256 = 4 img = cv2.imread("img20200312090232.png") img2 = cv2.imread("img20200310113646.png") img3 = cv2.add(img,100) cv2.imshow('image',img3) cv2.waitKey(0) img4 = cv2.add(img,img2) cv2.imshow('image',img4) cv2.waitKey(0) cv2.destroyAllWindows() 続きを読む
OpenCV3とPython3で形状のある物体の輪郭と方向を認識する(主成分分析:PCA、固有ベクトル) 3月 17, 2020 OpenCV3とPython3で形状のある物体の輪郭と方向を認識する(主成分分析:PCA、固有ベクトル) こちらのコードを参考に動かしてみた。一か所修正で動いた。 コードの意味はまだよくわからないが、すごいな。 ラベルの外観検査の傾き検出に使えそうだ。 # -*- coding: utf-8 -*- import cv2 import math import numpy as np # ベクトルを描画する def drawAxis(img, start_pt, vec, colour, length): # アンチエイリアス CV_AA = 16 # 終了点 end_pt = (int(start_pt[0] + length * vec[0]), int(start_pt[1] + length * vec[1])) # 中心を描画 cv2.circle(img, (int(start_pt[0]), int(start_pt[1])), 5, colour, 1) # 軸線を描画 cv2.line(img, (int(start_pt[0]), int(start_pt[1])), end_pt, colour, 1, CV_AA); # 先端の矢印を描画 angle = math.atan2(vec[1], vec[0]) print(angle) qx0 = int(end_pt[0] - 9 * math.cos(angle + math.pi / 4)); qy0 = int(end_pt[1] - 9 * math.sin(angle + math.pi / 4)); cv2.line(img, end_pt, (qx0, qy0), colour, 1, CV_AA); qx1 = int(end_pt[0] - 9 * math.cos(angle - math.pi / 4)); qy1 = int(end_pt[1] - 9 * math.sin(angle - math.pi / 4)); cv2.line(img, end_pt, (qx1, qy1), colour, 1, CV_ 続きを読む
コメント
コメントを投稿