【发布时间】:2020-07-09 15:28:01
【问题描述】:
如果我在给矩阵B 指定大小时删除uint8,我会得到一个被红色平面遮盖的输出。我还在imshow(B, []) 中添加了[] 以解决全黑输出的问题,但没有帮助。
function myThirdAssignment(I,WindowSize,K0,K1,K2)
%if size(I,3)==1
%[rows, columns, numberOfColorChannels] = size(I);
%elseif size(I,3)==3
x= im2double(imread(I));
%gray1=rgb2gray(x);
%[r, c, numberOfColorChannels] = size(gray1);
%end
if nargin==1 % If number of arguments of the function are equal to 1 then use
% the following default values for K0,K1,K2, & Window size.
K0= 0.5;
K1= 1;
K2= 0.5;
WindowSize=3;
end
figure(1); imshow(x); title('ORIGINAL IMAGE');
imwrite(x,'OriginalImage.bmp.bmp'); %writing data of original image in to current directory.
% GIVING B THE SAME ROWS AND COLUMS AS THE ORIGINAL IMAGE
[rows, columns, numberOfColorChannels] = size(x);
B = zeros(rows, columns, numberOfColorChannels, 'uint8');
% CALCULATING CEIL & FLOOR VALUES TO MAKE PROGRAM MORE GENERAL
p= ceil((WindowSize / 2)); %3/2= 1.5=2
s= floor((WindowSize / 2)); %3/2=1.5=1
B(i,j)= 2*x(i,j);
else
B(i,j)= x(i,j);
end
%--------------------------------------------
end
end
%RGB = cat(3, B, B, B);
figure(2);imshow(B, []); title('IMAGE AFTER LOCAL HISTOGRAM EQUALIZATION');
imwrite(B,'enhancedImage.jpeg.jpeg'); %writing data of enhanced image in to current directory
end
我使用this image 作为输入。
【问题讨论】:
-
你的问题不清楚,你想达到什么目的?为什么它不工作?你为什么要删除破坏你的代码的东西?
-
只需从
B = zeros(rows, columns, numberOfColorChannels, 'uint8');中删除uint8即可获得一个 图像。