ฉันมีภาพนี้
ฉันต้องการลบเงาออกจากภาพ ฉันรู้วิธีการที่แตกต่างกันมากมายเช่นการใช้ลักษณะทางสัณฐานวิทยาบางอย่างถูกใช้เพื่อลบเงา:
ฉันสร้างมาสก์นี้สำหรับภาพเดียวกัน
มีวิธีอื่นที่ฉันสามารถลองใช้มาสก์นี้ที่ฉันสร้างขึ้นได้ไหม?
แก้ไข :
ภาพอินพุตและมาส์กที่มีขนาดเดียวกันกับที่ร้องขอ:
แก้ไข 2: ฉันสร้างภาพคงที่ 1D แต่มันไม่สมบูรณ์
I = imread('shadow.jpg');
J = im2double(I);
R = J(:,:,1);
G = J(:,:,2);
B = J(:,:,3);
[len,wid] = size(R);
% Generation of 2-D Log Chromaticity Image.
for i = 1:len
for j = 1:wid
if ((R(i,j)*G(i,j)*B(i,j))~= 0)
c1(i,j) = R(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3));
c2(i,j) = G(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3));
c3(i,j) = B(i,j)/((R(i,j)*G(i,j)*B(i,j))^(1/3));
else
c1(i,j) = 1;
c2(i,j) = 1;
c3(i,j) = 1;
end
end
end
rho1 = mat2gray(log(c1));
rho2 = mat2gray(log(c2));
rho3 = mat2gray(log(c3));
X1 = mat2gray(rho1*1/(sqrt(2)) - rho2*1/(sqrt(2))); %(1/sqrt(2); -1/sqrt(2); 0)
X2 = mat2gray(rho1*1/(sqrt(6)) + rho2*1/(sqrt(6)) - rho3*2/(sqrt(6))); %(1/sqrt(6); 1/sqrt(6); -2/sqrt(6))
theta = 120;
InvariantImage = cos(theta*pi/180)*X1 + sin(theta*pi/180)*X2;
imagesc(InvariantImage); colormap(gray)
ไม่สามารถเข้าใจสิ่งที่ฉันทำผิดที่นี่โปรดช่วย?