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接続数を表示する方法の詳細な説明

1. 現在のすべての接続の詳細情報を表示します。 ./mysqladmin -uadmin -p -...

MySQLデータベース移行におけるデータ文字化けの問題を解決する

リーダーの指示のもと、Java プロジェクトを引き継ぎ、リファクタリングを行う必要がありました。同時...

デザイナーの「職業病」について

デザイナーは世界で最も繊細で感情的な人々だと私はいつも感じています。私がこう言うときに優越感を感じる...

よく使われるnginxの書き換えルールの詳細な説明

この記事では、Web ページのリンクを美しくするためによく使用される書き換えルールをいくつか紹介しま...

mysql 8.0.16 winx64.zip インストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16 winx64.zipのインストールと設定方法の具体的なコード...

Vue3とVue2の利点のまとめ

目次1. なぜ vue3 が必要なのでしょうか? 2. vue3の利点3. 応答原則の違い4. ライ...

JS 4つの楽しいハッカー背景効果コードを共有する

目次例1例2例3例4例1 <html> <ヘッド> <title>...

Linux+ApacheサーバURLの大文字と小文字の区別の問題を解決する

今日、問題が発生しました。ブラウザのアドレスバーにURLアドレスを入力する際、ページを正常にアクセス...

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...

2列のデータをSQLの新しい列として操作する

以下のように表示されます。 bb_sbからa1、a2、a1+a2 a、a1*a2 b、a1*1.0/...

el-table のテーブルを最適化するために仮想リストを使用する方法についての簡単な説明

目次序文解決具体的な実装満たすべき前提条件質問序文テーブルをよく使用します。データ量が多い場合は直接...

HTML の基本概要推奨事項 (段落)

HTML段落段落は <p> タグによって定義されます。例<p>これは段落で...

MySQL ジョイントテーブルクエリの簡単な例

MySql は結合テーブルクエリを使用しますが、初心者には理解しにくい場合があります。以下の記事では...

モバイルデバイス用のメタタグ設定の完全なリスト

序文以前フロントエンドを勉強していたとき、メタタグに対する私の理解はこの一文だけでした。 <メ...

TSオブジェクトのスプレッド演算子とレスト演算子の詳細な説明

目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...