MATLAB 基本操作
MATLABを画像処理に使っているので人によっては役に立たないかもしれません
メモ代わりに使っていたので体系的でもないです。
全部俺が書いたと思ったら大間違いだぜ
間違ってここにきちゃった人は「初心者によるMATLABメモ」というサイトをオススメします
全要素にアクセス
A = [1,0,0;2,0,0;3,0,0];
だったら
A(:)
sum(A(:)) = 6
画像ヒストグラム
%%% RGB画像
rgb_image = imread(image_file);
%%% R
imhist(rgb_image(:,:,1));
%%% G
imhist(rgb_image(:,:,2));
%%% B
imhist(rgb_image(:,:,3));
%%% HSV画像
hsv_image = rgb2hsv(rgb_image);
%%% H
imhist(hsv_image(:,:,1));
%%% S
imhist(hsv_image(:,:,2));
%%% V
imhist(hsv_image(:,:,3));
HSVの範囲は0〜1なのは仕様なのかな?
たまにVがやんちゃな範囲に飛ぶが何とかなるっぽい
行列の行、列の削除
例えばt = [8 1 6;
3 5 7;
4 9 2]
とあった時2行目削除したかったら
t(2,:) = []
とすれば2行目を詰めて
t = [8 1 6;
4 9 2]
としてくれる
同じサイズの行列として初期化
A = [1,2,3;
4,5,6]
Bを同じサイズで中身全部0の行列を作る(初期化用だったり)
B = zeros(size(A));
すると
B = [0,0,0;
0,0,0]
知ってるだけで結構便利
・・・ちなみに
zerosをonesとすると全部1の行列作ってくれます
パスについて
絶対パス、相対パス共に「/」「\」のどちらでも使える(混在もアリ)だから
C:\Users\Documents/MATLAB/research
とかでもOK
ちなみに相対パス指定は
./MATLAB/research
みたいな感じで大丈夫
フルパス名を分解して利用
fileparts関数
(使用例)
image_name = '\\Vision_Code\Image\image.jpg'
[path,name]=fileparts(image_name) ;
とすると
path = \\Vision_Code\Image
name = image.jpg
となる
何に使うのかって?知らんがな
関数ヘルプ作る
簡単で、作ったファンクションの下にコメントアウトで書く~
例)hoge.mが
function tom = hoge(a,b)
%%% INPUT
%%% a : point a
%%% b : point b
%%% OUTPUT
%%% tom : average value
%%% Calculate average
tom = (a+b)/2;
だとすると
help hoge
と打つと
%%% INPUT
%%% a : point a
%%% b : point b
%%% OUTPUT
%%% tom : average value
が表示される
figureにタイトルつける(青い所)
figure('Name','ここにタイトル入れる');
ディレクトリに含まれるファイルの数を知る [#f83fd508]
ループ数とかでよく使うよね
length(dir('C:\Users\someone\Desktop\hoge')
でhogeに含まれるファイルの数が求められる(「.」「..」が含まれるからファイル数は見た目より2個増えます)~
それがイヤなら↓みたいに
length(dir('C:\Users\someone\Desktop\hoge\*.jpg'))
みたいにすると(ここではjpgのファイル数)上手く数えられると思います
構造体
構造体のフィールドを[]っで囲むと
こういうのがあったとして
S(1).color = 'red';
S(1).position = 20;
S(2).color = 'green';
S(2).position = 35;
S(3).color = 'yellow';
S(3).position = 78;
こうすると
A = [S.color];
Aの値はこうなる
A = [S(1).color, S(2).color S(3).color]
つまり
A = [red green yellow]
こうすると
A = {S.color};
セルになる
A = {S(1).color, S(2).color S(3).color}
つまり
A = 'red' 'green' 'yellow'
どっかのサイトに詳しく書いてあったなぁ・・・てかこの説明もそっからパクtt (ry