我有一些提示:

>这只是一个小问题,但filter2执行相关.实际上,您需要执行卷积,在执行像素邻域和内核之间的加权和之前将内核旋转180度.但是因为内核是对称的,convolution and correlation perform the same thing in this case.

>我建议您使用imfilter来促进过滤,因为您已经使用了图像处理工具箱中的方法.它比filter2或conv2更快,并利用了Intel Integrated Performance Primitives.

>我强烈建议你先做双精度的一切,然后在你完成后转换回uint8.使用im2double将图像(很可能是uint8)转换为双精度.执行锐化时,这会保持精度并过早地投射到uint8然后执行减法会给您带来意想不到的副作用. uint8将限制结果为负数或超过255,这也可能是您没有得到正确结果的原因.因此,将图像转换为双倍,过滤图像,通过使用过滤结果减去图像来锐化结​​果(通过拉普拉斯运算符),然后在im2uint8之前转换回uint8.

您的代码和链接之间的差异是:

>内核有一个积极的中心.因此,1是负数,而中心是8,您必须将过滤结果添加到原始图像.

>在链接中,它们将过滤后的响应标准化,使最小值为0,最大值为1.

>将过滤后的响应添加到原始图像后,还可以将此结果标准化,使最小值为0,最大值为1.

>执行线性对比度增强,使强度60成为新的最小值,强度200成为新的最大值.您可以使用imadjust执行此操作.该函数接收图像以及两个数组 – 第一个数组是输入最小和最大强度,第二个数组是最小值和最大值应映射到的位置.因此,我想将输入强度60映射到输出强度0,输入强度200映射到输出强度255.确保指定的强度介于0和1之间,因此您必须将每个数量除以如文档中所述255.

因此:

clc;

close all;

a = im2double(imread('moon.png')); %// Read in your image

lap = [-1 -1 -1; -1 8 -1; -1 -1 -1]; %// Change - Centre is now positive

resp = imfilter(a, lap, 'conv'); %// Change

%// Change - Normalize the response image

minR = min(resp(:));

maxR = max(resp(:));

resp = (resp - minR) / (maxR - minR);

%// Change - Adding to original image now

sharpened = a + resp;

%// Change - Normalize the sharpened result

minA = min(sharpened(:));

maxA = max(sharpened(:));

sharpened = (sharpened - minA) / (maxA - minA);

%// Change - Perform linear contrast enhancement

sharpened = imadjust(sharpened, [60/255 200/255], [0 1]);

figure;

subplot(1,3,1);imshow(a); title('Original image');

subplot(1,3,2);imshow(resp); title('Laplacian filtered image');

subplot(1,3,3);imshow(sharpened); title('Sharpened image');

我现在得到这个数字……这似乎与链接中的数字一致:

matlab拉普拉斯图像锐化处理,MATLAB中的拉普拉斯图像滤波与锐化图像相关推荐

  1. matlab中取文件名函数,matlab从文件夹名中获取该文件夹下所图像文件名

    matlab从文件夹名中获得该文件夹下所图像文件名 function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_F ...

  2. matlab从文件夹名中获得该文件夹下所图像文件名

    function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path ...

  3. c# 傅里叶变换 频域_傅里叶变换在MATLAB中的应用(频域滤波)

    点击上方蓝字  关注我们 本文主要讲述如何在MATLAB中实现频域滤波,那么,怎么实现呢,我们这里讲的所有的滤波都是通过傅里叶变换在频域中实现的,所有这部分和傅里叶变换渊源很深,至于傅里叶变换本身,我 ...

  4. matlab imagesc 坐标,[转载]matlab 中imagesc的用法

    imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色 imagesc(x,y,A) x,y决定坐标范围,x,y应是两个二维向量,即x=[x1 x2],y= ...

  5. 图像降噪算法——小波硬阈值滤波(下)

    图像降噪算法--小波硬阈值滤波(下) 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 关于离散小波变换的原 ...

  6. 计算机视觉 Project 1:图像滤波和混合图像

    计算机视觉 Project 1:Image Filtering and Hybrid Images 计算机视觉 Project 1:Image Filtering and Hybrid Images ...

  7. matlab中表示拉普拉斯分布_深度优化局部拉普拉斯金字塔滤波器。

    微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识 觉得文章有用,请戳底部[好看]支持 算法概述 基于局部拉普拉斯金字塔的Edge-aware滤波器是在2011年由Adobe 公司的研究 ...

  8. matlab 拉布拉斯矩阵,关于图像处理:C ++中的拉普拉斯矩阵计算

    我一直在尝试实现名为"基于学习的数字抠像"的研究论文中描述的数字抠像算法. 其MATLAB代码可在此处获得. 我正在尝试使用OpenCV 2.4.3和UMFPACK将MATLAB代 ...

  9. matlab中表示拉普拉斯分布_CHAPT1:场论;电磁学和微波学的基本的数学手段和表示...

    物理学中把某个物理量在空间一个区域内的分布称为场.从各种场的取值性质来看可以分成两大类,一类是每个点对应一个数值,这种场统称为标量场,如温度场.密度场等;另一类是每 个点对应一个向量,这种场称为向量场 ...

最新文章

  1. 序列号明码比较的反汇编代码以及注册机的初步使用
  2. 特征工程(2):特征构建
  3. svm中支持向量的理解
  4. 计算机cpu温度显示原理图,腾讯计算机管家关于如何检查CPU温度的图形教程
  5. 用python写九九乘法口诀表左上角_python打出九九乘法口诀表
  6. 接口_简单get接口_第一个接口
  7. 原来MySQL面试还会问这些...
  8. C++学习系列笔记(三)
  9. C++ wchar_t
  10. ajax请求中带判断语句例子,jQuery中借助deferred来请求及判断AJAX加载的实例讲解...
  11. c语言 银行叫号系统,【分享】C语言 银行取票排队系统
  12. 循迹避障小车制作第一篇(tb6612模块与降压模块的使用)
  13. iOS问题记录 - Xcode 14安装低版本iOS模拟器
  14. KMPlayer播放mkv视频不出声音的解决办法
  15. 支付宝AR扫福是怎么实现的?
  16. ACM Uva1594 Ducci序列
  17. ExifTool如何格式化日期和时间信息以进行书写
  18. 贝塞尔曲线(Bezier)之爱心点赞曲线动画效果
  19. 数字电路中的建立时间与保持时间是什么
  20. 易语言助手用法与方便之处

热门文章

  1. 平安普惠借款费用占本金一半 被诉未起告知义务、存代签情况
  2. 淘宝月销量(可以显示具体数值)接口
  3. 鸿蒙之境怎么不更新了,神都夜行录鸿蒙之境策驱三运高级特点分析 打法攻略分享...
  4. 原型模式(Prototype Pattern)
  5. Python+selenium 实现自动上传视频到自媒体平台并发布好看短视频实例演示
  6. 基于SIP协议的IP电话系统设计与实现
  7. 顶级高手常用的16个思维模型
  8. DARPA呼吁采用通信技术概念来支持Troop的丛林作战
  9. sqlite3:锁机制、stmt加速、wal日志模式、多进程并发、写互斥
  10. upgrade pip