Why do i keep getting x=1 when it should be a matrix??

For some reason when i run this script x always equals one when it's suppose to be a matrix.
The program is for star dectection from the image and x suppose to be the threshold with steps.
stars=imread('stars.jpg');
GREY = rgb2gray(stars);
figure,imshow(GREY);
big = max( max (GREY)); %255
threshold = .4;
bwimage = GREY >= threshold*big;
figure(2),imshow(bwimage);
step=0.01;
for x = [0.0:step:1.0]
BW = GREY > big.*x;
count = sum(BW>=x);
end
Thanks ill greatly appreciate the help

 采纳的回答

"x" is used as a loop control variable. During the loop it will have only one value at a time; after the loop it will be the last value that it was assigned in the loop.
You have a problem that each iteration of the loop, you are overwriting "BW" and "count".
xvals = 0 : step: 1;
numx = length(xvals);
for K = 1 : numx
x = xvals(K);
BW = GREY > big.*x;
count(K) = sum(BW(:));
end

更多回答(1 个)

The way you have coded this, x is in a for loop, and the code will step through values of x, one by one, starting from 0 and ending at 1.
Instead, did you mean to simply make x a vector? Then you just need
x = 0.0 : step : 1.0;
without the loop.

类别

帮助中心File Exchange 中查找有关 Convert Image Type 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by