特殊效果的滤波算子变成黑白纯色图?

文章讨论了在代码中,低对比度图片可能导致滤镜如模糊、浮雕、运动模糊和锐化效果不明显。作者给出了使用Sobel滤镜进行边缘检测和不同滤镜处理示例,强调了图像内容多样性与对比度对可视化效果的重要性。

如果你的代码莫问题的话应该是图片对比度太低的原因。换一些高对比度的图片就行。下面是我查到的解释:

  • 模糊  滤镜会模糊图像,如果原始图像的对比度较低,则会导致颜色均匀(白色或黑色)。
  • 浮雕  滤镜会产生浮雕效果,这也会导致颜色均匀(高光和阴影)。
  • 运动 滤镜模拟运动模糊,进一步降低对比度并创建均匀的区域。
  • 锐化 滤镜增强了边缘,但如果原始图像的边缘对比度较低,则可能不会显示明显变化。

如果原始图像具有均匀的区域或低对比度,则过滤后的结果可能显示为纯色(白色或黑色)。为了提高可视化效果,请考虑使用内容更多样化、对比度更高的图像。

指定的边界处理方法(“复制”)将用于检测水平边缘的 Sobel 过滤器应用于输入灰度图像 p 。生成的过滤图像存储在 imgx 中。

Just changed the pictures!

这里随手附上代码:

clear,clc,close all;
% path1='D:\pictures\image\112.jpg';
% path2='D:\pictures\image\111.jpg';
path1='D:\pictures\image\99.png';
path2='D:\pictures\image\98.png';

p1=imread(path1);
p2=imread(path2);


% pp1=sobelp(p1);
% pp2=sobelp(p2);
% figure;
% subplot(2,3,1);imshow(p1);title('原图');
% subplot(2,3,2);imshow(p2);title('原图');
% subplot(2,3,4);imshow(pp1);title('处理图');
% subplot(2,3,5);imshow(pp2);title('处理图');

mp1=mohu(p1);
mp2=mohu(p2);
fp1=fudiao(p1);
fp2=fudiao(p2);
yp1=yundong(p1);
yp2=yundong(p2);
rp1=ruihua(p1);
rp2=ruihua(p2);
figure;
subplot(2,4,1);imshow(mp1);title('模糊');
subplot(2,4,2);imshow(fp1);title('浮雕');
subplot(2,4,3);imshow(yp1);title('运动');
subplot(2,4,4);imshow(rp1);title('锐化');
subplot(2,4,5);imshow(mp2);title('模糊');
subplot(2,4,6);imshow(fp2);title('浮雕');
subplot(2,4,7);imshow(yp2);title('运动');
subplot(2,4,8);imshow(rp2);title('锐化');

% function img=sobelp(p)
%     sobel_x = [-1 0 1; -2 0 2; -1 0 1]; % 水平方向
%     sobel_y = [-1 -2 -1; 0 0 0; 1 2 1]; % 垂直方向
%     sobel_yx = [0 -1  1; -2 0 2; -1 1 0]; % y=x方向
%     sobel_xy = [-1 -2 0; -1 0 1; 0 2 1]; % y=-x方向
%     imgx = imfilter(p, sobel_x, 'replicate');
%     imgy = imfilter(p, sobel_y, 'replicate');
%     imgxy = imfilter(p, sobel_xy, 'replicate');
%     imgyx = imfilter(p, sobel_yx, 'replicate');
% % 合并四个方向的结果
%     img = imgx + imgy+imgxy+imgyx;
% end
function img=mohu(p)
    sob=[0 0 1 0 0;
        0 1 1 1 0 ;
        1 1 1 1 1 ;
        0 1 1 1 0;
        0 0 1 0 0];
    img=imfilter(p,sob,'replicate');
end
function img=fudiao(p)
    sob=[-1 -1 0;
        -1 0 -1;
        0 -1 -1];
    img=imfilter(p,sob,'replicate');
end
function img=yundong(p)
     sob=[1 0 0 0 0 0 0 0 ;
         0 1 0 0 0 0 0 0 ;
         0 0 1 0 0 0 0 0 ;
         0 0 0 1 0 0 0 0 ;
         0 0 0 0 1 0 0 0 ;
         0 0 0 0 0 1 0 0 ;
         0 0 0 0 0 0 1 0 ;
         0 0 0 0 0 0 0 1 
         ];
    img=imfilter(p,sob,'replicate');
end
function img=ruihua(p)
    sob=[-1 -1 -1 ;
        -1 9 -1 ;
        -1 -1 -1];
    img=imfilter(p,sob,'replicate');
end

### 图像处理与信号处理中的滤波算子 #### 滤波算子的概念及其作用 滤波算子是一种用于像或信号处理的技术工具,其核心功能是对输入的数据进行特定的变换操作。在图像处理领域,滤波算子主要用于平滑、锐化以及增强像特征等任务。通过定义不同类型的核矩阵(Kernel Matrix),可以实现多种效果。 对于频域滤波而言,常见的低通滤波器包括理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器[^1]。这些滤波器的主要目的是减少高频分量的影响,从而使像变得模糊并去除噪声干扰。相反,高通滤波器则强调像中的细节信息,比如边缘检测等功能。 #### 中值滤波的应用场景 除了基于频率响应的传统线性空间滤波外,还有非线性的中值滤波技术被广泛应用于实际工程当中。它通过对局部区域内像素值重新排列取中间值得方式来达到降噪目的而不破坏原有结构特性[^2]。具体表达式如下所示: ```cpp g(x, y) = med { f(x - k, y - l), (k, l ∈ W)} ``` 这里`f(x,y)`代表原始图片而`g(x,y)`表示经过处理后的结果;窗口尺寸一般设定成奇数阶矩形阵列如3×3或者更大些以适应更复杂情况下的需求[^2]。 #### 编程实践指南 当着手开发涉及滤波运算程序时可遵循以下几点建议: - **灰度转化**: 如果目标对象并非单通道黑白照片,则需先将其转换至相应模式下再继续后续步骤; - **边界填充(zero-padding)** : 为了避免因超出索引范围而导致错误发生,在执行卷积前应对源素材四周适当扩充空白区域作为缓冲区; - 构建合适的掩码模板(Mask Template): 根据所需达成的效果精心挑选参数配置组合形成最终使用的系数向量表; - 应用所选算法完成整个流程直至获得满意成果为止[^3]. 另外值得注意的是,在某些特殊场合下还可以利用到互相关理论基础之上构建起来的各种衍生版本—例如匹配过滤机制便是在通讯接收端经常遇见的一种典型实例之一[^4]. 它们之间存在着密切联系同时也各自具备独特优势适用于解决不同类型的实际问题情境之中. ```python import numpy as np from scipy import signal def apply_convolution(image, kernel): """Apply convolution with zero padding.""" padded_image = np.pad(image, ((1, 1), (1, 1)), 'constant', constant_values=0) result = signal.convolve2d(padded_image, kernel, mode='valid') return result ``` 以上代码片段展示了如何运用Python库SciPy来进行标准二维离散卷积计算过程演示说明文档[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值