nyanpyou Note

主な目的は調べたり作ったりしたプログラミング備忘録(予定)

Python

エンジニア・プログラマにしか使えないSNSのクライアントを作る

qiita.com Qiitaで話題になってたやつのクライアントをPythonで作った。 github.com GETとPOSTが出来れば閲覧も投稿もできるそうなので、標準ライブラリのurllibだけで何とかなった。 記事内の仕様によると GET /text/all?$orderby=_created_at desc&$limit=…

衝動的にLightsailとDjangoでWebサイトを作る その4

前回からの続き。 nyanpyou.hatenablog.com 構成(再掲) レンタルサーバー:AWS Lightsail OS:Ubuntu 20.04.2 データベース:MySQL 8.0.25 サーバーソフト:Apache 2.4.41 言語:Python 3.8.5 フレームワーク:Django 3.2.2 ドメイン取得:AWS Route 53 構成…

衝動的にLightsailとDjangoでWebサイトを作る その3

前回からの続き。 nyanpyou.hatenablog.com 構成(再掲) レンタルサーバー:AWS Lightsail OS:Ubuntu 20.04.2 データベース:MySQL 8.0.25 サーバーソフト:Apache 2.4.41 言語:Python 3.8.5 フレームワーク:Django 3.2.2 ドメイン取得:AWS Route 53 構成…

衝動的にLightsailとDjangoでWebサイトを作る その2

前回からの続き。 nyanpyou.hatenablog.com 構成(再掲) レンタルサーバー:AWS Lightsail OS:Ubuntu 20.04.2 データベース:MySQL 8.0.25 サーバーソフト:Apache 2.4.41 言語:Python 3.8.5 フレームワーク:Django 3.2.2 ドメイン取得:AWS Route 53 構成…

そうだ温度計を作ろう その3

ブログ執筆に着手してから思った以上に時間(1か月近く)がかかってしまいましたが、温度計最終回その3外観編。 さっくり行こうと思います。 nyanpyou.hatenablog.com nyanpyou.hatenablog.com 外観 改善点 実は室温がズレる 動作させ続けると液晶に白い靄が…

そうだ温度計を作ろう その2

そんなわけでその2ソフトウェア編です。 nyanpyou.hatenablog.com 構成の検討 初期案 改善案 具体的な話 温度取得 室温 外気温 ローカルサーバー 非同期通信 画面表示 最終回へ続く 構成の検討 初期案 温度計を作るにあたって、最初に考えた仕組みはこんな…

Pythonで送信したメールの添付ファイルが正しく見えない件について

以前書いたPythonを用いたメール送信方法を一斉送信を行う際に利用していたが、問題が発覚したのでその内容と解決方法についてメモ。 症状 原因 修正 教訓 余談 症状 Pythonで添付ファイル付きのメールを送り、そのメールをWindows10メールで受け取ると添付…

大量のPDFに対して一斉にパスワード付与と解除をしたい話

実に2か月ぶりの更新。 やりたいこと Google大先生に聞いてみる QPDF やりたいこと 大量のPDFファイル全てにパスワードを付与したい。また、それの解除もしたい。そしてこの機能を組み込みたいプログラムがPythonで作成中の物なので、できればPythonから動か…

音声認識を利用したい話

なんでいきなり音声認識か 唐突だが巷で流行りのVtuberというものが最近お気に入りで、自分は特に宝鐘マリンの配信をよく見ている。公式的には17歳なのだが、明らかに17歳ではない(アラサー的な)話題を連発するマシンガントークが面白い。 www.youtube.com …

下書きのまま忘れられていたメモ書き

メモ代わりに書きつけたまま公開せずに放置されていたことに気づいたので放り投げます← 最近作りたいものを思いつき、そのためにまた新しいことを学ぼうとしているところなので、それについてまとめるかもしれない。 以下供養のメモ書き format()関数を使っ…

Pythonで論文の情報をスクレイピングする

きっかけ 論文投稿雑誌の一部にはVideo Abstractなるものを一緒に乗せることが可能らしい。 初めて聞いたものなので、一体どんなものなのか他の人達の投稿を確認しようと思ったが、どうやら目次を見てもその論文にVideo Abstractが載っているのかの記載は無…

Windowsのコマンドプロンプトで遊ぶ

コマンドプロンプトで船長を動かすやつ。 以下の記事をたまたま見たことがきっかけで自分でもやってみようと思って作った。 そういう衝動性って大事。 dev.classmethod.jp #python3.8.1 import subprocess import cv2 import numpy as np def preview_by_con…

Pythonでメール(.eml)を読み込む

前置き 前回はPythonでメールの送信をする方法についてまとめたが、今回は電子メールを読み込む方法についての話。 ただし、こちらについても前回同様、公式ドキュメントを読んでも理解しきれないところが多々あった。わかる範囲でのメモ書きとする。 前置き…

Pythonでメールを送信する

例のウイルスにより諸々の対応に追われてしばらく何も書けていなかったが、その間に学んだことを忘れないように書いておく。 今回はPythonを使ったメール送信について。 テキストのみの送信(一番シンプルな例) 添付ファイル付きの送信 参考元 テキストのみの…

OpenCVとNumpyで比較明合成をしたい話2

以前OpenCVとNumpyで比較明合成を行うという話を書いた。 nyanpyou.hatenablog.com この時は配列の要素に二重のfor文でアクセスする形になっていたため処理が遅く、その部分が課題だった。今回処理速度が改善できたので改めて書き残す。 今回は以下の単純な…

学びのメモ2

eval()関数を使うと、文字列をPythonコードとして評価できる。これを使うと実行したいメソッドを文字列の結合から作ることが出来る。オブジェクトは同じだけど、メソッド部分だけどんどん入れ替えたい場合などに使える。 #例 class Test: def printOK(self):…

OpenCVで静止画を連続撮影した時に起こる「コマ落ち」について

例えば以下のように、Raspberry PiとRaspberry Pi Camera Moduleを用いて、0.2秒の露出時間で5秒に1回カメラの取り込みを更新する(つまり途切れずに光を取り込み続ける)ように設定し、連続で画像の保存をしたいとする。 from imutils.video import VideoStre…

学びのメモ:リストのソートとlambda式

リストの要素をソートしたい時は、組み込み関数のsort()もしくはsorted()を使うと良い。sort()は元のリストをそのまま並び替え、sorted()は元のリストのコピーを並び替える。 これらの関数にはKeyパラメータが存在し、比較を行う前にリストの各要素に対して…

Raspberry Pi Camera Moduleの扱い方

以前Raspberry Pi Camera Moduleを使いたいがいまいち方法がわからず困ったという内容の投稿をしたが、その後進展があったため以下に記す。 Raspberry Pi Camera Moduleを動かすために、PiCameraというライブラリが用意されている。PiCameraライブラリのアク…

学びのメモ

今まで調べたり断片的に学んできた知識を整理することも兼ねて、OpenCVやPythonの参考書を改めて1から読んでいる。 その中で覚えた事、よく忘れることなどをメモ書きとして無秩序に書き連ねる。 #osの区切り文字を取得する import os a = os.path.sep import…

OpenCVとNumpyで比較明合成をしたい話

低速度シャッター(といっても0.2秒くらい)で撮影をしていると、映したいものが2枚の写真に跨ってしまうことが稀によくある。 そこで、パソコンを使って合成を行い、視認性の良い写真を作りたくなった。何か良い合成方法はないかと調べてみると、この比較明合…

Raspberry Pi 4でRaspberry Pi Camera Module v2を動かしたいが難航している話

2020/02/25追記: 進展しました。 nyanpyou.hatenablog.com Raspberry Pi 4とPythonとOpenCVを使って、Raspberry Pi Camera Module v2を動かし、30fpsの動画を1分毎に連番で撮影したいのだが、思った通りに撮影ができずに沼にハマっている。 解像度をコード…

動画ファイルを静止画に分解する

OpenCVを使うことで、動画ファイルを簡単に静止画に分解することが出来る。 動画を1フレームずつjpg画像として保存し、連番で出力する。 #Python3.7.4 #opencv3.4.2 import cv2 #動画ファイルを開く cap = cv2.VideoCapture('output.avi') i = 1 while(cap.i…

OpenCVとUSBカメラで動画撮影

OpenCVとUSBカメラを使って動画を撮影する。 用意するUSBカメラはその辺で3000円くらいで売っているもので充分。 動画撮影に使うコードはこんな感じで作った。 #video_record.py import numpy as np import cv2 windowname = "Camera View" camera_number = …

OpenCVの導入について

前回はPythonの導入について書いたが、今回は自分がPythonを使うことになった理由の1つである、OpenCVなるものの導入方法を書こうと思う。 前半部分は、Pythonの時と同様に余談なので、本題部分には目次からGO。 2020/1/23追記 この方法でOpenCVをインストー…

関数へリストを渡して中身を書き換えたいときの注意

関数外部で定義したリストを関数に渡し、関数の中からリストの中身を書き換えたかったが、思うような結果にならず1時間半くらい悩むことになった。 解決のために参考にしたページをメモとして残す。 qiita.com ポイントは、「リストのidが同じならば同じもの…

Pythonの導入について

1年半前くらいから仕事で触るようになったPythonについて、まずは導入方法から書いていこうと思う。 前半部分は、導入方法に関係のない情報をたらたらと書いているため、該当触れている部分には目次から飛ぶとストレスフリー。 まずPythonって何? 導入方法 …