Integers can only be combined with integers of the same class, or scalar doubles.

2 ビュー (過去 30 日間)
mask = 1-double(im2bw(gray, graythresh(gray)));
strel = [0 1 1 1 0; 1 1 1 1 1; 1 1 1 1 1; 1 1 1 1 1; 0 1 1 1 0];%structuring element
shadowavg_red = sum(sum(image(:,:,1).*shadow_core)) / sum(sum(shadow_core));

採用された回答

Walter Roberson
Walter Roberson 2016 年 2 月 3 日
Whatever your shadow_core is, it is double precision, but your image variable is integer data type.
shadowavg_red = sum(sum(double(ImageArray(:,:,1)).*shadow_core)) / sum(sum(shadow_core));
or better yet,
mean(ImageArray(logical(shadow_core)))
Note the renaming of image to ImageArray. Using a variable named "image" always leads to problems.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by