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-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

目次1.1. MySQL binlog を有効にする1.2. RabbitMQ の交換とキューを構成...

HTML+CSS3+JSで実装されたドロップダウンメニュー

成果を達成する html <div class="コンテナ"> &l...

ウェブサイトのデザインを改善するための役立つ提案を提供します

<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...

MySQL アップグレードのベストプラクティス

MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...

フロントエンド開発に必要な共通ツール機能のまとめ

1. 時刻の書式設定とその他の方法moment.jsライブラリファイルの使用をお勧めします2. テン...

Windows に Docker と docker-compose スイートをインストールするための詳細なチュートリアル

目次導入ダウンロードしてインストールする設定docker-composeをインストールする導入Doc...

nginx+WordPressで個人ブログを構築するプロセス全体の詳細な説明

0x00 はじめにWordPress は、世界で最も人気のある CMS システムです。PHP と M...

JSは要素のドラッグとプレースホルダー機能を実装します

このブログ投稿は、ブロガーが数日前に取り組んだプロジェクトで遭遇した困難についてです。これを学んだ後...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

CentOS 環境で NFS リモート ディレクトリ マウントを使用する手順の紹介

目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....

Docker イメージのプルとタグ操作 pull | tag

Fabric プロジェクトのソースコードを読み直してみたところ、Docker の部分でよくわからな...

JavaScript エラー処理 try..catch...finally + は throw+TypeError+RangeError をカバーします

目次1. 目的2. 文法3. 練習する1. 目的通常、エラーが発生すると、スクリプトは直ちに停止し、...

el-tree での不完全なテキスト表示の解決策

目次方法1: 水平スクロールバーを設定する最も簡単な方法方法2(新規):ドラッグバーを追加して外側の...

forEachでawaitが機能しない問題を解決する

1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...

床スクロール効果を実現する js

この記事ではjQueryを使用して、階段のスライド効果を実装し、フロアをスクロールし、フロアボタンを...