PILの画素アクセスの高速化検討

PILのImageの画素に(x,y)座標でアクセスする速度を計測した。 目的 「Pythonでfor文を使ったら負け」とも言われるが、PILやOpenCVの画像処理機能を使わずに自前で画像処理を実装する場合、画素へのアクセスはどのような方法が高速かを比較検討する。 画素へ…

VSCodeで簡単ローカルWebサーバ

発端 HTML/CSS + JavaScript の静的サイトであれば、わざわざローカルにWebサーバを立てなくても、HTMLファイルをブラウザで開けば動作確認できる。しかし、JavaScriptからサイト内のファイルにアクセスする場合、例えば画像ファイルを読み込む下記のような…

.NET SDKのバージョン確認とインストール

エラー NETSDK1045 Visual Studioでのビルド時に、必要な.NET SDKがインストールされていないと、エラー NETSDK1045 が発生する。 現在の .NET SDK は、ターゲットとする .NET Core 6.0 をサポートしていません。.NET Core 5.0 以下をターゲットとするか、.N…

ノート:2次元の線形写像の幾何学的な意味 (3)

ノート:2次元の線形写像の幾何学的な意味 (2) - 滴了庵日録 の例のうち対角でない行列を対角化する。 対角化の方法 2次正方行列に対して、2個の一次独立な固有ベクトルとその固有値があるとき、 とおくと、は対角行列になり、その値は となる。 とおくと、 …

パソコン版Googleドライブからログアウト

微妙に分かりにくかったのでメモ。通知領域にあるGoogleドライブのアイコンをクリック。右上の歯車アイコンをクリックし、さらに「設定」をクリック。右上の歯車アイコンをクリック。「アカウントの接続を解除」をクリック。再接続するにはスタートメニュー…

ノート:2次元の線形写像の幾何学的な意味 (2)

ノート:2次元の線形写像の幾何学的な意味 - 滴了庵日録 の具体例を示す。 変換の意味 行列 A 行列式 |A| 固有値 λ 固有ベクトル x x方向に2倍 2 2, 1 y方向に2倍 2 1, 2 x方向に-1倍(左右反転) -1 -1, 1 y方向に-1倍(上下反転) -1 1, -1 xとyの入れ替え(y=x…

ノート:2次元の線形写像の幾何学的な意味

具体例は→ ノート:2次元の線形写像の幾何学的な意味 (2) - 滴了庵日録 2次元の線形写像 2×2行列(2次正方行列) で表される。 図形を原点を中心に変形させる。変形は伸縮と剪断と回転からなる。 原点(0,0)は動かない。(平行移動はしない) 伸縮は、原点を中心…

ノート:準同型定理

部分群 ある群の部分集合であって、それ自身も群となるもの。 部分群 H⊂G とは、Gが群であり、Gと同じ演算に関してHが群であること。 H≤G と書くこともある。 (演算に関して閉じている) (単位元を含む) (逆元に関して閉じている) 例 (Z,+) ⊂ (Q,+) ⊂ (R,+) ⊂…

(今さら) LPCXpressoでHEXファイル生成

プロジェクトの「Properties」→「C/C++ Build」→「Settings」→「Build Steps」で 「Post-build steps」の「Command」を編集し、下記のコマンドを追加する。 arm-none-eabi-objcopy -O ihex ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.hex※ コマ…

Gitでサブモジュール

何ができるか? 外部の gitリポジトリを、自分の gitリポジトリのサブディレクトリとして登録し、特定のコミットを参照できる。ライブラリなどを参照する場合に便利である。 サブモジュールを登録する 自分の gitリポジトリで、ターミナルから下記のようなコ…

GitHubで迷子のコミット

GitHubのリポジトリで、https://github.com/ユーザ名/リポジトリ名/tree/ハッシュ値(40桁) にファイルは存在するが、Commits の一覧に現れない、迷子になってしまったコミットというのが存在しうる。コミットの属するブランチが削除された場合、そのコミット…

ノート:全射・単射・全単射と準同型写像・同型写像

f:写像 (map) X:定義域, 始域 (demain) Y:終域 (codomain) f : X→ Y 全射・単射・全単射 全射 (上への写像, surjection) f(X) = Y つまり Y の全ての元を指す → があること 単射 (1対1写像, injection) 異なる → が Y の同じ元を指さないこと 全単射 (上…

ノート:群、環、体

群 (Group) 復習→ ノート:群・モノイド・半群・マグマ(亜群) - 滴了庵日録集合 G と 演算 ◦ の組 (G, ◦) が G0~G3をみたすなら群、G0~G1をみたすなら半群 (G0) 閉じている (G1) 結合法則 (G2) 単位元の存在 (G3) 逆元の存在 さらにG4も満たすなら可換群(…

ノート:群・モノイド・半群・マグマ(亜群)

代数系とは 代数系とは、集合 (例えば 整数 Z ) と演算 (例えば 加法 +) の組。 例えば Z と + の組を (Z, +) のようにあらわす。 集合だけでは代数系ではない。 包含関係 群・モノイド・半群・マグマ(亜群)は代数系で、下図のような包含関係にある。 内側の…

PlatformIO で Arduino Uno R4 Minima

Lチカのプロジェクトを作成 Project Wizard で、Board に Arduino Uno R4 Minima を指定する。はじめて R4 Minima のプロジェクトを作成するときは、ツールチェーンやライブラリがインストールされるので、終わるまで待つ。 Lチカのコード ボード上のLEDを点…

Gmailで特定のラベルのメールをmbox形式で保存する

mboxファイルのエクスポート Google データ エクスポート を開く。(「Googleアカウントを管理」 →「データとプライバシー」→「データをダウンロード」からもアクセスできる。) 「新しいエクスポートの作成」→「① 追加するデータの選択」で「選択をすべて解除…

SESでインクルードパスの設定

SES (Segger Embedded Studio) で、インクルードパスとライブラリパスを設定する方法をメモ。Project Explorerでプロジェクト名を右クリックして「Options」をクリック。コンフィギュレーションは「Common」を選択する。(「Debug」および「Release」は「Comm…

GCCでUTF-8なソースの文字列リテラルをShift-JISのバイナリにコンパイルする

やりたいこと UTF-8で保存されたC言語のソースファイル中の日本語文字列リテラルを、Shift-JIS(正確にはCP932)のバイナリにコンパイルしたい。使用するCコンパイラはGCCとする。 なぜやりたいか 今どきはソースファイルはUTF-8エンコードで保存するのが一般…

『異邦人』のフランス語

カミュの『異邦人』は、一般的には不条理小説と呼ばれるが、何が不条理なのかよく分からない。不条理というならキリスト教徒側(判事や司祭)の言ってることのほうがよほど不条理で滑稽に思える。文章じたいは簡潔なので、フランス語まったく知らないけど拾…

STM32CubeMXにMCUパッケージをインストール

インストール方法 CubeMXを起動し、「Help」→「Manage embedded software packages」をクリック。「STM32Cube MCU Packages」タブで所望のMCUシリーズ (ここではSTM32H7) の所望のバージョン (ここでは1.11.0) を選択し「Install」をクリック。 インストール…

英独仏の be と have を比較

beに相当する動詞の人称変化 haveに相当する動詞の人称変化 所感 英語は人称変化がほとんど消滅したので面倒が少ない。(三単現だけしぶとく残っている) ドイツ語は人称変化が残ってるので面倒だが、まあ分かる。 フランス語はどうしてこうなった? have と a…

メモ:ファイルの内容は比較せずにフォルダの内容を比較

やりたいこと Windowsで2つのフォルダの内容を比較したいが、ファイルの内容まで比較すると時間がかかりすぎる。ファイル名および更新日時とサイズのみで比較したい。(ファイル名、更新日時、サイズが一致していて内容が異なっていることは、ありえなくはな…

NORDIC メモ

デバイス ショートレンジ (BLEなど) NORDICといえばBLE、BLEといえばNORDICというくらい、BLEマイコンの代表格といえるnRF5xシリーズ。じつはBLEだけでなく、ANTやZigBee、Threadといった2.4gGHz帯の短距離無線通信にも対応する。現在の主力製品はARM Cortex…

nRF5xマイコンの評価ボード一覧

PCAからはじまる謎の番号があり、サンプルコードのプロジェクトのディレクトリもこの番号に従っているので分かりにくい。 PCA番号 チップ 評価ボード名 コア Flash RAM PCA10095 nRF5340 nRF5340 DK M33+M33 1MB+256kB 512kB+64kB PCA10056 nRF52840 nRF5284…

nRF52マイコンの開発環境構築 (Segger Embedded Studio)

Segger Embedded Studioのインストール 下記からEmbedded Studio for ARMをダウンロードしてインストールする。 SEGGER - The Embedded Experts - Downloads - Embedded Studio 必要なら下記から J-Link Software and Documentation pack をダウンロードして…

C++のラムダ式と引数束縛

C++のラムダ式で、コピーキャプチャした場合と参照キャプチャした場合のふるまいの違いを示す。 コピーキャプチャの場合は、ラムダ式が定義された時点での変数の値が使われる。 参照キャプチャの場合は、ラムダ式が実行された時点での変数の値が使われる。ま…

メモ:RX100M5Aでテザー撮影

やりたいこと PCからカメラを操作して撮影して、すぐに写真を確認したい。 ツールのインストール Imaging Edge Desktop をダウンロードし、インストール。 Imaging Edge Desktop が起動するので、画面の指示に従い、Remote/Viewer/Edit をダウンロードし、イ…

オーバーライドのおさらい (C++/C#/Javaの比較)

見た目がよく似た3つの言語で微妙に挙動が異なるのでまとめ。 C++の場合 #include <stdio.h> class BaseClass { public: void hoge() { printf("BaseClass::hoge\n"); } virtual void piyo() { printf("BaseClass::piyo\n"); } // 仮想関数 }; class SubClass : publi</stdio.h>…

C++のオーバーロードとオーバーライドの挙動

C++のクラスで public なメンバ関数にオーバーロードがある場合、派生クラスでオーバーロードのどれか一つを private でオーバーライドすると、他のオーバーロードも全て private になる。これは仮想関数であっても非仮想関数であっても同じ。 #include<stdio.h> clas</stdio.h>…

メモ:Canon EOS Kiss Mでテザー撮影

やりたいこと PCからカメラを操作して撮影して、すぐに写真を確認したい。 ツールのインストール EOS Utility 接続とアプリの起動 カメラとPCをUSBケーブルで接続する。 EOS Utilityを起動し、「リモート撮影」を選択する。 保存先の設定と撮影 EOS Utility…