python
curlコマンドのヘッダーの要素を追加 - Bye Bye Moore で扱った、ヘッダに固有命令である旨をつけてPOST命令で結果を返す方法を自分でもやってみる Bottleで画像を受け取る - Bye Bye Moore を拡張する形で作っていきますbottleでヘッダを呼び出すには"reque…
ArUcoとの連動を前提としますが、まずはロボットアームのみを実験 実際のところ 実行環境 Nano Pi Neo 2 Ubuntu Core 20LTS 受け手側(実行側)のPython import os import sys import time sys.path.append(os.path.join(os.path.dirname(__file__), '../../…
shuzo-kino.hateblo.jp の続き 実際のところ まず模擬的な移動マーカーを生成 $ composite -geometry 48x48+270+220 ar12.png target.png target_1.png $ composite -geometry 48x48+360+260 ar12.png target.png target_2.png $ composite -geometry 48x48+…
実際のところ 重心を使いましたが、気になる人は内側の角にするのもよさそう。 import cv2 import numpy as np aruco = cv2.aruco dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50) img_src = cv2.imread("target.png", 1) corners, ids, rej…
ロボットの動作領域など、ある程度範囲は決まっているが当日の状況に応じて少し変更する場合 設定ファイルで細かいパラメータを設定する方法もありますが…… 今回は固定USBカメラからArUcoのマーカーを読み取り、その重心を基準に右下方向に伸びる動作領域を…
前回の成果を活かして、Arucoを追跡する 実際のところ ハード NanoPi Neo 2 Fifine K420 camera.py フレームの出力をバイト列ではなく、imencodeのままで実施。 今回はArUcoのマーカー追跡を使うため、画像として渡さないといけないため。 import cv2 class …
mjpeg-streamerやGstreamerでカメラの画像を配信する方法は何度か触りました。確認するには便利でしたが、少し手の込んだ事をやろうとすると苦労したりするので、今回は学習をかねてこれらの機能を簡易的に再現してみようと思います。 実際のところ WEB鯖は …
実際のところ import bpy mat = bpy.data.materials.new(name="foobar") mat.use_nodes = True bsdf = mat.node_tree.nodes["Principled BSDF"] texImage = mat.node_tree.nodes.new('ShaderNodeTexImage') texImage.image = bpy.data.images.load("C:\\User…
実際のところ import bpy def point_cloud(ob_name, coords, edges=[], faces=[]): """Create point cloud object based on given coordinates and name. Keyword arguments: ob_name -- new object name coords -- float triplets eg: [(-1.0, 1.0, 0.0), (…
実際のところ カメラを動かす デフォではこんな感じ ここで、カメラを動かすと D.objects[0].location.x += 2 D.objects[0].location.y += 2 アニメーションする import bpy from math import sin start_pos = (0,0,0) ob = bpy.context.object frame_num = …
shuzo-kino.hateblo.jp の続きで、色を変えたり並べたり 実際のところ 色を変える デフォ画面ではCubeは"[1]"に入ってるので、それにマテリアルをセットします。 最後にrenderで描画。 mat = bpy.data.materials.new('C1') mat.diffuse_color = (51 / 256, 1…
3DCGから動画編集まで何でもできる謎のツールBlender。 およそ4年前にギョームで使う説明CGのために少し触り、凄腕モデラーの前に挫折して放棄してましたが……。当時注目していた機能の一つとしてPythonをインターフェイスとするスクリプト機能がありました…
実際のところ 前回のをベースに、中心点から一定量以上動いた場合に右か左かを判定するような簡単なのを。 #! /bin/python import cv2 aruco = cv2.aruco img = cv2.imread("1.jpg") dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50) corners…
なんだかクッソ長いタイトルですが……要は python3側はwhileループで標準入力にきた結果を待ち構えている 標準入力には別の端末で生成された文字列を送り込みたい という課題を、これまで作ってきたモンの寄せ集めで作ってみましたという話 実際のところ 名前…
webDAVはブラウザ上でファイルマネージャー的な事をやれる機能です。 ディレクトリにファイルが生成されているか確認する等々、非エンジニアに依頼するときに少し便利。 自分でやる分にはnetcatでやるのが楽なんですけどね……。 実際のところ ~$ pip install …
角度を計算するわけですが、左右対称な場合はその方向を判定しないと使いモンになりません。 アプローチは色々ありそうですが、今回は考える事が少ない前半後半の分離というアプローチでやる事にしました。 実際のところ 方針 処理する領域を分けて、 #前半…
実際のところ import cv2 import numpy as np img = cv2.imread('gauge.jpg') #img = cv2.imread('test3.png') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray,150,200,apertureSize = 3) lines = cv2.HoughLines(edges,1, 1* np.pi/1…
ハフ変換という方法で方向を検知できる その前処理として、エッジの検出が必要 実際のところ canny法という手法をつかってエッジの検出をします。 OpenCVではそのまんまCannyというメソッド名で、画像、下限、上限と引数が続きます。 import cv2 import nump…
オブジェクトの傾きからパラメーターをとる必要がでてきました。 できればnoOpenCVチャレンジを継続したかったのですが、時間的にそうも言っていられず…… 久々にOpenCVを弄る事に。 実際のところ 考え方 画像を二値化する オブジェクトの領域を区切る オブジ…
BlenderユーザーのためのPython入門作者:大西 武シーアンドアール研究所Amazon
$ for i in $(seq 10 10 90) ; do convert rose: -threshold $i% rose$i.png; doneimport open3d import numpy from PIL import Image # 点群型データ作成 pcd = open3d.geometry.PointCloud() files = ['rose10.png','rose20.png','rose30.png','rose40.png…
実際のところ スクリプト例 VoxelGridのcreate_from_point_cloud import open3d import numpy # 点群型データ作成 pcd = open3d.geometry.PointCloud() # 座標設定 for x in range(10): pcd.points.append([ 0, float(x), 1.0]) pcd.points.append([float(x)…
numpy-stlでSTLファイルを生成する その1:環境構築と動作確認 - Bye Bye MooreSTLファイルを生成しようと思ったものの、やはり難しい……点群データめいた方法でやれないか調査したところ、 open3dというドンピシャなモノが。 実際のところ 導入 $ pip insta…
最近流行りのプロジェクトはnodeやpythonのリファ実装が充実していたりします ところが、それと連携したいプロジェクトはC#で書かれており、できれば更新はしたくない…… そういうときは、いっそC#のほうからpythonを読み出すというのも考えていいかも 実際の…
実際のところ メインで発生し得るのがファイルなしエラー、一応それ以外もキャッチしときたい場合 try: f = open('myfile.txt', 'r') 100 / 0 except FileNotFoundError as e: print("123 ", e) except Exception as e: print("foobar: ", e) $ python3 hoge…
昔ながらのsocket通信に出くわしたので試しにPythonで組んでみました。 実際のところ 送信側 import socket import time with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect(('127.0.0.1',9999)) s.sendall(b"hello") time.sleep(2) w…
しょっちゅう忘れて全く記憶に残らないのでメモ 実際のところ X=300だとかy=99みたいな感じで文字列が入ってくる際、左辺と右辺をそれぞれパースしたい場合は以下のように import re pt = re.compile(r'(x|y)=(\d{1,5})') mt = pt.match("x=100") mt[1] #>> …
実際のところ import numpy as np from stl import mesh ## 基準となる頂点を設定 vertices = np.array([\ [-2, -1, +1], [-1, -1, +1], [ 0, -1, +1], [+1, -1, +1], [+2, -1, +1], [ 0, 0, +1]]) ## 頂点を三点指定して三角形をつくる faces = np.array([\…
実際のところ インストール $ pip install numpy-stl スクリプト import numpy as np from stl import mesh # Define the 8 vertices of the cube vertices = np.array([\ [-1, -1, -1], [+1, -1, -1], [+1, +1, -1], [-1, +1, -1], [-1, -1, +1], [+1, -1, …
developers.google.com を参考にOAuthのcredをtoken.jsonに保存して開発しているようなケースで 色々弄りながら実験していると、以下のようなのが出てくる事があります。 An error occurred: これはtoken.jsonに古いScope情報など不適切な権限が書き込まれて…