- 二値化は万能な方法が困難で色々検討が必要です(下記はimbinarize関数任せにしています)
- メモリに入らない程大量の画像は読み込めません。read関数で1枚ずつ処理するのが無難です
- 下記は2枚の画像をサンプルとしましたが「フォルダ下に含まれる画像」等の形で処理できます
複数の画像に対する処理の仕方がわかりません
17 views (last 30 days)
Show older comments
複数枚ある画像に対しての処理のやり方が分かりません。
下記の手順のことをやりたいと考えています。
複数画像を読み込む
読み込んだ画像を二値化
二値化画像の白色部分の面積を出す
面積を A1, A2,.... ,Anといったような変数に入れる
面積の平均を出す
ご教授いただけると幸いです。
0 Comments
Accepted Answer
Atsushi Ueno
on 17 Nov 2022
fs = matlab.io.datastore.FileSet(["street1.jpg","coins.png"]); % サンプルは2枚だけ
imds = imageDatastore(fs);
Is = readall(imds) % 複数画像を読み込む
BWs = cellfun(@(x) imbinarize(im2gray(x)),Is,'uni',false) % 読み込んだ画像を二値化
As = cellfun(@(x) sum(x,'all'),BWs) % 二値化画像の白色部分の面積を A1, A2,.... ,Anといったような変数に入れる
AveArea = mean(As) % 面積の平均を出す
More Answers (0)
See Also
Categories
Find more on Convert Image Type in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!