Rの画像行列<480×720 uint8>をX,Yそれぞれ5分割し、真ん中(96×144)の平均値を算出したい。
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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
Respuesta aceptada
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
el 18 de Jul. de 2018
Image Processing Toolboxが必要ですが、お持ちではないですか?
もしくは、R2014b以降のバージョンであれは、imshowとrgb2grayはMATLAB本体の関数として 使うことができますので、アップグレードされるのも良いかと思います。
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!