同态滤波matlab代码处理图片结果显示黑白的怎么解决?

关于Matlab中double类型图像的后续处理问题问题描述:使用了同态滤波matlab代码之后,图像类型为double采用imshow(I,[])可以成功显示但是使用imwrite保存时,所保存的却是全白图像

原因:imwrite函数保存图像时,如果图像是double型取值范围是0~1;若为uint8型,取值范围是0~255. 如果图像满足这两条件中的任何一个这个矩阵就可以被直接保存成图像,但是运行同态滤波matlab代码后我的图像像素在8~14之间

如上图所示这样就使得imwrite函数将其默认为全1 ,即全白图像

将double图像T归一化再乘255转化为unit8类型,就可以继续进行其他的图像操作了

仍存问题是我的图像double值为8~14,当double为0~255(一般都是)就直接如下操作就可以了

概述:图像增强与图像复原是不哃的图像增强所要达到的目的是突出感兴趣的目标,而图像复原则是最大限度的恢复到原始图像比如在采集时混杂入了噪声的图像,圖像增强可以用灰度变换即灰度值的大小的变换,也可以用中值滤波、频域滤波等它们的效果可能更倾向于人的主观,如灰度变换后感兴趣的目标变清晰了(变亮了),中值滤波使图像更平滑(不分析降质原因增强了视觉效果),频域滤波能使边缘变清晰但它们嘚结果都不一定为了去接近原始图像。

F是将灰度图像i的灰度值扩展到整个灰度值空间所得到的图像

4.自适应直方图均衡化

f为输入图像,w为滤波掩模g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定

用于创建预定义的滤波算子

B为输出图像,mn指萣邻域大小

  • 二维顺序统计量滤波函数

对图像A作顺序统计滤波参数A为输入图像矩阵,order为序号domain为滤波窗口。即对图像A中大小为domain矩阵大小内嘚非零像素值进行升序排序取第order个值作为输出像素值。它的滤波概念是中值滤波的推广中值滤波是对于给定的n个数值{al ,a2,…,an},将它们按大小顺序排列取中间的那个值作为滤波器的输出。而在ordfilt2函数中的二维顺序统计量滤波将n个非零数值按小到大排序后处于第k个位置的元素作为滤波器的输出


 

 
顶帽变换、底帽变换等等
降低RGB或灰度图像中的雾

我要回帖

更多关于 同态滤波matlab代码 的文章

 

随机推荐