Matlab による JavaScript プログラミング、重心アルゴリズムによる位置決め学習

Matlab による JavaScript プログラミング、重心アルゴリズムによる位置決め学習

Matlab はクローズドな商用ソフトウェアであり、米国政府によって管理されており、ビジネス倫理を無視しているため、使用は推奨されません。 Matlab 構文が気に入ったら、Matlab と同じ構文を持つオープン ソースの octave に移行できます。

Matlab セントロイドアルゴリズム

いわゆる重心は、密度をピクセルのグレースケール値として使用する場合の重心です。たとえば、重心のx座標は

ここに画像の説明を挿入

最も直感的な方法は次のとおりです。

%%質量中心アルゴリズム関数 [x,y] = oCenter(img) を使用して、img の質量中心の位置を見つけます。
イメージをdouble型で表す。
[m,n] = サイズ(画像);
x = 0;y = 0;合計=0;
i = 1:mの場合
    j = 1:nの場合
        y = y + img(i,j)*i;
        関数 i は、 x と j の積から成ります。
        合計 = 合計 + img(i,j);
    終わり
終わり
x = x /合計;
y = y /合計;

これは十分単純で粗雑ですが、あまりにも醜いです。結局のところ、Matlab では、行列が最も基本的な演算単位です。
そして、蓄積と合計のプロセスでは、同じ配列が実際に繰り返し使用されます。 i行目では、各列に1,2,3...を掛けて合計します。これはi行目のベクトルとベクトル[1:n]のドット積です。したがって、全体像に関係なく、i 番目の行ベクトルの重心は比較的簡単に書き出すことができます。

x = 画像(i,:)*(1:n)'/合計(画像(i,:));

これに基づいて、予想外の利点も得られました。つまり、各行の重心を1行の式で簡単に記述できるのです。

x = img*(1:n)'./sum(img,2);%各行の重心 y = (1:m)*img./sum(img);%各列の重心

OCD とは、見た目が快適であることを意味します。
したがって、画像全体の重心は次のように表すことができます。

合計Img = 合計(img(:));
x = sum(img)*(1:n)'/sumImg;
y = (1:m)*sum(画像,2)/sumImg;

上記は、Matlab 重心アルゴリズムによる位置決め学習を通した JavaScript プログラミングの詳細な内容です。JavaScript 位置決め Matlab 重心アルゴリズムの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • JS 面接の質問 --- アルゴリズムの手順に関する質問
  • Vue で crypto-js AES 対称暗号化アルゴリズムを使用して暗号化と復号化を実装する
  • JavaScript で実装された 7 つのソート アルゴリズムの概要 (推奨!)
  • JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明
  • JS での多段階ソートアルゴリズムの実装コード
  • JS でシンプルなカレンダー アルゴリズムを実装する方法
  • JavaScript アルゴリズムの面接の質問

<<:  MySQL マルチテーブルクエリの具体例

>>:  DockerでRedisをデプロイして起動する方法

推薦する

MySQL エラー: ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションの解決策を再起動してください

問題を見つける最近、以前のデータを入力していたときに、プログラムが突然次のエラーを報告しました。 [...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

iOS WeChat H5ページのゴム反発効果の落とし穴記録

ビジネス要件最近開発したプロジェクトの一つに、WeChat公式アカウントに関連したH5ページがありま...

CSS3+HTML5+JSでブロックの縮小・拡大アニメーション効果を実現

最近、あるプロジェクトに取り組んでいたとき、自分のプロジェクトでは CSS3 のアニメーション技術を...

MySQL での utf8mb4 照合の例

MySQL における一般的な utf8mb4 ソート規則は次のとおりです。 utf8mb4_0900...

SELINUXの動作原理の詳細な説明

1. はじめにSELinux が Linux にもたらす主な価値は、柔軟で構成可能な MAC メカニ...

LinuxシステムのAnsible自動運用保守導入方法

Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...

HTMLにおける絶対パスと相対パスの違いの分析

図に示すように: 1 つのページには多数のファイルが接続されているため、ファイルを参照するときには、...

IntelliJ IDEA に Docker プラグインをインストールする詳細な手順 (2018 バージョン)

目次1. 開発環境2. dockerプラグインをインストールする1. アイデアのインストール2. イ...

CocosCreatorのホットアップデートの包括的な説明

目次序文ホットチェンジとはCocos Hot アップデートの概要マニフェストプロジェクトリソースとゲ...

Tomcat マルチインスタンスの展開と構成の原則

1. ファイアウォールをオフにし、Tomcatのインストールに必要なソフトウェアパッケージを/opt...

DOCTYPE宣言の機能と使い方の詳しい説明

1. ブラウザのレンダリングモードとdoctype一部の Web ページは標準に従って作成されていま...

ESXI の仮想マシンにワークステーションをインストールするときに発生するネットワーク障害の解決策

問題の説明ESXI で Windows にワークステーションをインストールした後、内部の仮想マシンは...

MySQL 8の新機能ウィンドウ関数の役割

MySQL 8.0 の新機能は次のとおりです。 Unicode 9.0 をすぐに完全にサポートウィン...

MySQL エラー番号 1129 の解決方法

SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...