You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab fspecial中prewitt滤波器转置h'的具体含义是什么

Matlab fspecial Prewitt滤波器转置操作详解

操作本质

Matlab中提到的对fspecial('prewitt')返回结果执行h'操作,就是对生成的3×3滤波器矩阵做共轭转置。由于Prewitt滤波器的所有元素都是实数,共轭转置的效果和普通矩阵转置完全一致:将矩阵的行和列按位置互换,原矩阵第i行第j列的元素,会移动到转置后矩阵的第j行第i列位置。

不同核的效果对比

  • 默认返回的水平边缘增强核
    直接调用h = fspecial('prewitt')得到的核如下,通过计算垂直方向的灰度差检测水平走向的边缘:
h =
     1     1     1
     0     0     0
    -1    -1    -1
  • 转置后得到的垂直边缘增强核
    执行h_v = h'后得到的核如下,通过计算水平方向的灰度差检测垂直走向的边缘,也就是官方文档提到的突出垂直边缘的效果:
h_v =
     1     0    -1
     1     0    -1
     1     0    -1

可直接运行的使用示例

% 读取内置测试灰度图
I = imread('cameraman.tif');
% 生成默认Prewitt水平边缘检测核
h_h = fspecial('prewitt');
% 转置得到垂直边缘检测核
h_v = h_h';
% 执行卷积提取边缘
edge_horizontal = imfilter(I, h_h);
edge_vertical = imfilter(I, h_v);

% 结果可视化
figure
subplot(1,3,1)
imshow(I)
title('原始图像')
subplot(1,3,2)
imshow(edge_horizontal)
title('默认核提取的水平边缘')
subplot(1,3,3)
imshow(edge_vertical)
title('转置核提取的垂直边缘')

补充说明

由于Prewitt核不存在复数元素,此处使用h'(共轭转置)和h.'(普通转置)得到的结果完全一致,官方文档采用h'是Matlab环境下的通用简写,直接使用即可。

内容的提问来源于stack exchange,提问作者user1535147

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:18:20