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をデプロイして起動する方法

推薦する

SQL実装 LeetCode (176. 2番目に高い給与)

[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...

Zabbix パスワードをリセットする方法 (ワンステップ)

問題の説明長い間アカウントパスワードを入力して Zabbix にログインしていないため、管理者パスワ...

Alibaba Cloudのセキュリティルール設定の詳細な説明

2日前、ダブル11ショッピングフェスティバルを利用して、Alibaba CloudでECS(サーバー...

JavaScript の手ぶれ補正とスロットリングの詳細な説明

目次デバウンススロットル要約するデバウンス定義: スクロール イベントなど、短時間に連続してトリガー...

MySQL の簡単な分析 - MVCC

バージョンチェーンInnoDB エンジン テーブルでは、クラスター化インデックス レコードに 2 つ...

親子コンポーネントの通信を解決するための3つのVueスロット

目次序文環境の準備カテゴリコンポーネントアプリのコンポーネント1. デフォルトスロット2. 名前付き...

MySQL Limitパフォーマンス最適化とページングデータパフォーマンス最適化の詳細な説明

MySQL Limit はセグメント内のデータベース データをクエリでき、主にページングで使用されま...

Linuxオンラインソフトウェアgccをオンラインでインストールする方法

Linux オンラインインストール関連コマンド: yum install: すべてインストールyum...

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

HTML DOCTYPEの略語

DOCTYPE が次のとおりである場合:コードをコピーコードは次のとおりです。 <!DOCTY...

JSでよく使われるデータ処理方法

目次DOM処理配列方法要約するDOM処理DOM はドキュメントの構造化された表現を提供し、スクリプト...

MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。

目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...

Vue は PC カメラを呼び出してリアルタイムで写真を撮る機能を実装します

VueはPCカメラを呼び出してリアルタイムで写真を撮影します。参考までに、具体的な内容は次のとおりで...

MySQL で union all を使用してユニオンソートを取得する方法

プロジェクトでは、何らかの不可逆的な理由により、テーブルに保存されたデータがページの表示要件を満たす...

ネイティブ Js で実装されたシンプルなシームレス スクロール カルーセルのサンプル コード

シンプルなシームレススクロールカルーセルには多くの抜け穴があり、後から画像を追加するのは非常に不便で...