Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ヒートマップのオーバーレイ イメージの作成

ThingSpeak™ は、イメージやマップ上に測定値を投影することにより、データを可視化するのに役立ちます。この例では、ESP32 開発ボードによって測定されたワイヤレス ネットワークの信号強度の結果を使用して、ヒートマップの作成を説明します。特別なハードウェアは不要ですが、イメージと位置の測定が必要です。詳細については、Arduino の ESP32 によるワイヤレス ネットワークの信号強度を参照してください。

  1. MATLAB® Analysis を作成します。[Apps][MATLAB Analysis] を選択します。次に、[New][Create] を選択して空白のテンプレートを作成します。

  2. データを収集します。X 座標と Y 座標、および信号強度を別々のベクトルに保存します。信号強度のデータは ThingSpeak チャネルから読み取ることができます。CHANNEL_ID、READ_API_KEY、および FIELD_NUMBER をチャネルの適切な値に必ず変更してください。チャネル ID は、チャネルのメイン ページの最上部に表示されています。

    % Read data from a ThingSpeak channel.
    strength = thingSpeakRead(CHANNEL_ID, 'ReadKey',READ_API_KEY,'numPoints',15,'fields',[FIELD_NUMBER]';
    X = [10 550 550 10 50 234 393 129 237 328 448 225 344 457 477]';
    Y = [10 10 410 410 293 210 202 132 130 142 141 272 268 274 200]';
    
    % Uncomment the next line to enter data directly instead of reading from ThingSpeak
    % strength = [-90 -90 -90 -90 -40 -20 -22.4 -45 -35 -41 -44 -55 -40 -75 -26]';
    
  3. ワイヤレス信号の測定値をパーセンテージに変換します。

    % Convert the signal strength into an estimated percentage
    strengthPercent = 2*(strength+100)/100;
  4. イメージを読み取り、イメージの寸法を保存します。イメージは Web 上でホストしなければなりません。

    picture = imread('https://www.mathworks.com/help/examples/optim/win64/officeassign_01.png');
    [width,height,depth] = size(picture);
    

  5. 既存の点を内挿し、内挿結果でオーバーレイ イメージを塗りつぶすモデルを作成します。次に、オーバーレイの透明度を設定します。

    F = scatteredInterpolant(Y, X, strengthPercent,'natural');
    for i = 1:height-1
       for j = 1:width-1
              OverlayImage(i,j) = F(i,j);
       end
    end
    alpha = (~isnan(OverlayImage))*0.6;
  6. イメージとカラー バーを表示します。

    imshow(picture);
    hold on
    OverlayImage = imshow( OverlayImage );
    % Set the color limits to be relative to the data values
    caxis auto  
    colormap( OverlayImage.Parent, jet );
    colorbar( OverlayImage.Parent );
    % Set the AlphaData to be the transparency matrix created earlier
    set( OverlayImage, 'AlphaData', alpha );
    

    最終的な結果では、信号強度が最も高い領域が赤で、最も低い領域が青で表示されます。

参考

| | | |