需要清理这张图片,删除“clean me”字样,并使其更加明亮。作为图像处理课程作业的一部分,可以使用Matlab函数ginput,在图像中找到特定的点(当然,在脚本中应该硬编码所需的坐标)。
您可以使用conv2、fft2、ifft2、fftshift等函数。
您还可以使用median、mean、max、min、sort等函数。
我的基本想法是从图片中间使用黑白值,并将它们插入到其他黑白条纹的部分。但是这会给图片带来非常合成的外观。
请问你能给我一个方向吗?中值滤波不会产生好的结果。
需要清理这张图片,删除“clean me”字样,并使其更加明亮。作为图像处理课程作业的一部分,可以使用Matlab函数ginput,在图像中找到特定的点(当然,在脚本中应该硬编码所需的坐标)。
您可以使用conv2、fft2、ifft2、fftshift等函数。
您还可以使用median、mean、max、min、sort等函数。
我的基本想法是从图片中间使用黑白值,并将它们插入到其他黑白条纹的部分。但是这会给图片带来非常合成的外观。
请问你能给我一个方向吗?中值滤波不会产生好的结果。
ginput
标记星形部分的右下角:% Mark lower right corner of star-region
figure();imagesc(Im);colormap(gray)
[xCorner,yCorner] = ginput(1);
close
xCorner = round(xCorner); yCorner = round(yCorner);
% Save star region
starBackup = Im(1:yCorner,1:xCorner);
% Clean up stripes
Im = medfilt2(Im,[1,50]);
% Replace star region
Im(1:yCorner,1:xCorner) = starBackup;
这将产生
为了解决曝光问题(中间部分比角落更亮),您可以将2-D高斯模型适合于图像并进行归一化。 如果要执行此操作,建议使用fit
,尽管如果您之前没有进行过模型拟合的话,可能有点技术性。
我找到的2-D高斯模型大致如下:
将这两个东西结合起来,得到:
我看到了两种去除“clean me”的选项,它们都依赖于水平相似性。
1)仅在水平方向上使用长的1D低通滤波器。
2)使用一个1D中值滤波器,长度可能为10个像素。
对于这两种解决方案,当然必须排除星星部分。
当涉及到亮度时,您可以尝试直方图均衡化。但是,这并不能解决亮度不均匀的问题。也许在均衡化之前进行高通滤波可以解决这个问题。
此致
1 - 低通滤波器
。 - mmgp我使用gausswin()函数制作高斯掩模:
Pic_usa_g = abs(1 - gausswin( size(Pic_usa,2) ));
Pic_usa_g = Pic_usa_g + 0.6;
Pic_usa_g = Pic_usa_g .* 2;
Pic_usa_g = Pic_usa_g';
C = repmat(Pic_usa_g, size(Pic_usa,1),1);
在将图像与掩模相乘之后,您将得到修复后的图像。