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

2 Ansichten (letzte 30 Tage)
025015
025015 am 12 Jul. 2018
Kommentiert: 025015 am 18 Jul. 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 Kommentar
michio
michio am 13 Jul. 2018
Bearbeitet: michio am 13 Jul. 2018
コード表示を編集しました。添付の画像のように、コード部分を選択し、{}Code ボタンを押すことでできますので、ぜひご利用ください。

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Kei Otsuka
Kei Otsuka am 13 Jul. 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 Kommentare
Kei Otsuka
Kei Otsuka am 18 Jul. 2018
Image Processing Toolboxが必要ですが、お持ちではないですか?
もしくは、R2014b以降のバージョンであれは、imshowとrgb2grayはMATLAB本体の関数として 使うことができますので、アップグレードされるのも良いかと思います。
025015
025015 am 18 Jul. 2018
持ち合わせていないため、アップグレードします。色々とご対応頂きありがとうございました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu グラフィックス finden Sie in Help Center und File Exchange

Produkte


Version

R2013a

Community Treasure Hunt

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

Start Hunting!