K = imread('test.jpg'); // read image
countif=0;countelse=0; // declare variables
addif=0;addelse=0;
counttotal=0; temp=0;
[M N] = size(K); // calculate the size of the image
for x=1:M // X-Axis
for y=1:N // Y-Axis
temp=K(x,y); // Pixel Value at location(x,y)
if (temp<50) // If value of pixel is below threshold value 50
addif = addif + temp; // Add to get sum of all these pixels
countif = countif + 1; // Counter to get total number of such pixels
else // If pixel value is above threshold limit i.e 50
countelse = countelse + 1; // Add to get sum of all these pixels
addelse= addelse + temp; // Counter to get total number of such pixels
end
counttotal=counttotal+1; // Total rotation counter
end
end
在上面给出的代码中,名为&#39; countif&#39;和&#39; countelse&#39;工作正常,但变量值和addif&#39;和&#39; addelse&#39;不是应该的。
答案 0 :(得分:0)
您可以为此
使用逻辑索引checking whether user supplied BLASLIB=[text above] does not work
答案 1 :(得分:0)
<强>解决方案: - 强>
将此代替:K = imread('test.jpg');
:K = double(imread('test.jpg'))
或者,如果您想保留unit8
K
类和temp
,而不是上述修复,请执行以下操作:替换此addif = addif + temp;
这个:addif = addif + double(temp);
这个addelse= addelse + temp;
与此addelse= addelse + double(temp);
<强>解释: - 强>
temp
的等级为uint8
,因为K
的等级为uint8
因此,您得到的addif
和addelse
的等级也会变为{ {1}}无法存储超过unit8
的值。通过将255
转换为K
,您使用它的所有下一个变量都会像我在第一个提出的解决方案中那样变为double
。或者,如果您希望保持double
和K
的类相同,则可以使用第二个建议的解决方案。
您可以在命令窗口中使用temp
来检查变量类。