Rの画像行列<480×720 uint8>をX,Y​それぞれ5分割し、真​ん中(96×144)​の平均値を算出したい​。

2 visualizaciones (últimos 30 días)
025015
025015 el 12 de Jul. de 2018
Comentada: 025015 el 18 de Jul. de 2018
R = rgbValues(240, 360, 1); のような一画素の値は出力ではなく、 (96×144)の範囲の平均値を出したい。
cam1=vcapg2;%カメラから画像行列取得 image(cam1);%画像表示 pause(0.02);
rgbValues = cam1;%RGBの画像行列
%RGB RGB = rgbValues(240, 360, :); RGB = reshape(RGB, [1,3]);
  1 comentario
michio
michio el 13 de Jul. de 2018
Editada: michio el 13 de Jul. de 2018
コード表示を編集しました。添付の画像のように、コード部分を選択し、{}Code ボタンを押すことでできますので、ぜひご利用ください。

Iniciar sesión para comentar.

Respuesta aceptada

Kei Otsuka
Kei Otsuka el 13 de Jul. de 2018
画像を5分割するためのインデックスの作成ができればよさそうですね。
ご参考 :  行列のインデックス 
今回のケースですと、まず画像を読み込んで適当にリサイズし、
img = imread('AT3_1m4_06.tif');
img = imresize(img, [480 720]);
5分割するためのインデックステーブルを作成
sz = size(img);
tblc = [0 sz(1)/5 * [1:5]];
tblr = [0 sz(2)/5 * [1:5]];
中心部分をROIとして抽出
idx = 3;
roi = img(tblc(idx)+1:tblc(idx+1), tblr(idx)+1:tblr(idx+1));
平均値を求める
mean(roi(:))
また、insertShape等を利用して元画像に抽出した領域を書き込んであげると解りやすいです。
img2 = insertShape(img, 'Rectangle', [tblr(idx)+1, tblc(idx)+1, 144, 96], 'Linewidth', 5);
figure, imshow(img2)
  7 comentarios
Kei Otsuka
Kei Otsuka el 18 de Jul. de 2018
Image Processing Toolboxが必要ですが、お持ちではないですか?
もしくは、R2014b以降のバージョンであれは、imshowとrgb2grayはMATLAB本体の関数として 使うことができますので、アップグレードされるのも良いかと思います。
025015
025015 el 18 de Jul. de 2018
持ち合わせていないため、アップグレードします。色々とご対応頂きありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre グラフィックス en Help Center y File Exchange.

Productos


Versión

R2013a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!