Why do I get this error of the '=' operator? I am trying to get the individual mean values of the blobs of pixels (in the image there are blobs of pixels and I want each mean)
1 回表示 (過去 30 日間)
古いコメントを表示
Unsupported use of the '=' operator. To compare values for equality, use '=='. To pass name-value arguments using the name=value format, provide these arguments after all other inputs. Thank you SO much.
% Loads the z, 32 bit, single channel image
rgbImage = imread('test1.jpg');
grayImage = double(rgbImage(:, :, 2));
%replace each pixel with the average of its 3x3 neighbors with
%filtering with a radius of 2 pixels
mean3=conv2(grayImage,[0 1 0; 1 1 1; 0 1 0]/5,'same');
imshow(mean3, []);
%set a pixel threshold cutoff in imagej it was 60 - minimize background by choosing a
%value cutoff, such that every pixel less than that value is considered one class,
%while every pixel greater than that value is considered the other class.
roi = grayImage < 60; % Define roi by thresholding
%convert the intensity values of the background to "nothing"
%rather than to 0 and keeps the other values
%divide this image by itself -> ROI
roifinal = roi./roi;
imshow(roifinal, []);
%Prompt user to load raw image
I = imread('raw.tif');
I = double(I);
%multiply ROI by the raw image
FinalRegOI = roi .* roi;
%Resulting region of Interest
imshow(FinalRegOI, []);
%inc the brightness of the image
I1 = I+50;
figure(1); imshow()
% Tabulate individual mean values
info_table = table(meanOfPixelsInRoi = mean(grayImage(roi)), meanOfPixelsInRoi, 'VariableNames', {'FileName', 'Mean of pixel blobs'});
finalcount = sum(meanOfPixelsInRoi)
disp(info_table)
2 件のコメント
Star Strider
2022 年 7 月 31 日
I suggest instead:
filename = 'test1.jpg';
rgbImage = imread(filename);
. . .
meanOfPixelsInRoi = mean(grayImage(roi));
info_table = table(filename, meanOfPixelsInRoi, 'VariableNames', {'FileName', 'Mean of pixel blobs'});
or something similar.
I suspect that there may be other problems, so I am not posting this as an answer.
回答 (1 件)
Walter Roberson
2022 年 7 月 31 日
info_table = table(meanOfPixelsInRoi = mean(grayImage(roi)), meanOfPixelsInRoi, 'VariableNames', {'FileName', 'Mean of pixel blobs'});
Until a couple of releases ago, that = in the middle of the table() call would have been strictly invalid syntax. I suspect that you are using one of those older versions.
In new enough versions, that call would be the equivalent of
table('meanOfPixelsInRoi', mean(grayImage(roi)), meanOfPixelsInRoi, 'VariableNames', {'FileName', 'Mean of pixel blobs'})
except possibly the = form would be invalid because there are positional parameters afterwards.
You cannot use = in the middle of a call to assign to a temporary variable. MATLAB is not C or C++. In C and C++ the result of an = is the rvalue and can be used in an expression, but assignment is syntactic in MATLAB and cannot be used inside expressions.
3 件のコメント
Image Analyst
2022 年 7 月 31 日
You'd need to do
table(meanOfPixelsInRoi, mean(grayImage(roi)), meanOfPixelsInRoi, ...
'VariableNames', {'MeanOfPixelBlobs1', 'MeanOfPixelBlobs2', 'MeanOfPixelBlobs3'})
but why are you making a table wth only one row in it and all 3 columns the same??? Why not save them all up and make a table with the values from all your images.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!