matlabを使用して画像にラベルを付ける
2389 ワード
最近の任務は画像にラベルをつけて、純粋な体力の仕事です.
タスクの簡単な説明:いくつかのフォルダの画像を分類します.
一般的なアプローチは、次のとおりです.
1.まず、A/B/C/Dの4つのもののうちの1つまたは複数を含む画像を開く.
2.この画像に何が含まれているかを判断する:A?AB?など;
3.画像に必要なもののいずれかが含まれていない場合は、破棄する.
4.そうでなければ、画像を対応するフォルダに保存し、画像の名前を変更します.
この仕事で一番気持ち悪いのは、「図を読む」「判断する」「保存する」という簡単な繰り返しの動作を大量に操作することです.しかし、このような特徴により、このタスクを完了するプロセスを最適化する機会があります.
最適化後のプロセス:
1.画像が自動的にポップアップする;
2.私は肉眼で画像のカテゴリを判断して、キーボードの上で画像のラベルをたたきます(ラベルは123などの数字に予め設定して、とても時間を節約します);
3.プログラムはラベルに基づいて自動的に画像を保存し、画像の名前を変更する.
ほら、matlab関数を書くと、上の太字で説明したように、私はただ一つのことをすることができます.
私はプログラム全体を3つの部分に分けて、機能によって:
1.read()関数;
2.saveAs()関数;
3.main()関数;
CSDNはmatlabコードフォーマットがないようですね..
さらに、
1.matlabコマンドラインウィンドウで入力:format longは数値表示ビット数を16にすることができる.
2.input関数の使用:p='this will show on the screen';a= input(p);
キーボードに何かを入力すると、aに取られます.
3.呼び出す関数の経路、プログラム内の作業経路との違いに注意する.
4.タスクの性質を審査し、プログラミングを柔軟に運用して仕事を簡素化する.
タスクの簡単な説明:いくつかのフォルダの画像を分類します.
一般的なアプローチは、次のとおりです.
1.まず、A/B/C/Dの4つのもののうちの1つまたは複数を含む画像を開く.
2.この画像に何が含まれているかを判断する:A?AB?など;
3.画像に必要なもののいずれかが含まれていない場合は、破棄する.
4.そうでなければ、画像を対応するフォルダに保存し、画像の名前を変更します.
この仕事で一番気持ち悪いのは、「図を読む」「判断する」「保存する」という簡単な繰り返しの動作を大量に操作することです.しかし、このような特徴により、このタスクを完了するプロセスを最適化する機会があります.
最適化後のプロセス:
1.画像が自動的にポップアップする;
2.私は肉眼で画像のカテゴリを判断して、キーボードの上で画像のラベルをたたきます(ラベルは123などの数字に予め設定して、とても時間を節約します);
3.プログラムはラベルに基づいて自動的に画像を保存し、画像の名前を変更する.
ほら、matlab関数を書くと、上の太字で説明したように、私はただ一つのことをすることができます.
私はプログラム全体を3つの部分に分けて、機能によって:
1.read()関数;
2.saveAs()関数;
3.main()関数;
filefolder_path = '';
save_path = '';
work_path = '';
filefolders = dir(filefolder_path) %
types = ['A';'B';'C';'D']
%
for k=1:length(types)
mkdir([save_path types])
end
%process
for i=1:length(filefolders)
filefolder = filefolders(i).name;
file_path = [filefolder_path '\' filefolder]
files = dir(file_path);
len = length(files);
% ,
if len<1
continue
end
%
for j=1:len
%dir '.' '..'
if strcmp(files(j).name,'.') || strcmp(files(j).name,'..')
continue
end
thisfile = [file_path '\' files(j).name];
read(thisfile);
#
p = '1:A 5:B 6:C 9:D';
#a
a = input(p);
#dest_path
dest_path=saveAs(a,types,save_path);
p1 = '1:AP 2:LAT';
ti = input(p1);
if ti == 1
new_name = 'AP';
elseif ti == 2
new_name = 'LAT';
end
%
copyfile(file_path,dest_path);
%
cd(dest_path);
% command
command = ['rename' 32 current_name 32 new_name];
status = dos(command);
% ;
cd(work_path);
end
end
CSDNはmatlabコードフォーマットがないようですね..
さらに、
1.matlabコマンドラインウィンドウで入力:format longは数値表示ビット数を16にすることができる.
2.input関数の使用:p='this will show on the screen';a= input(p);
キーボードに何かを入力すると、aに取られます.
3.呼び出す関数の経路、プログラム内の作業経路との違いに注意する.
4.タスクの性質を審査し、プログラミングを柔軟に運用して仕事を簡素化する.