我用的是opencv+C++环境来实现的

#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector>
using namespace std;
using namespace cv;
//手动实现拉普拉斯算子图像
void my_lapulace(const Mat &image, Mat &result)
{result.create(image.size(), image.type());//创建与原图尺寸一样的图像空间/*拉普拉斯滤波核3*30  -1   0-1   4  -10  -1   0  *///处理除最外围一圈外的所有像素值for (int i = 1; i < image.rows - 1; i++){const uchar * pre = image.ptr<const uchar>(i - 1);//前一行const uchar * cur = image.ptr<const uchar>(i);//当前行,访问第i行,ptr函数可以直接访问到第i行const uchar * next = image.ptr<const uchar>(i + 1);//下一行uchar * output = result.ptr<uchar>(i);//输出图像的第i行int ch = image.channels();//通道个数int startCol = ch;//每一行的开始处理点int endCol = (image.cols - 1)* ch;//每一行的处理结束点for (int j = startCol; j < endCol; j++){//输出图像的遍历指针与当前行的指针同步递增, 以每行的每一个像素点的每一个通道值为一个递增量, 因为要考虑到图像的通道数//saturate_cast<uchar>保证结果在uchar范围内*output++ = saturate_cast<uchar>(4 * cur[j] - pre[j] - next[j] - cur[j - ch] - cur[j + ch]);}}//将最外围一圈的像素值设为0result.row(0).setTo(Scalar(0));result.row(result.rows - 1).setTo(Scalar(0));result.col(0).setTo(Scalar(0));result.col(result.cols - 1).setTo(Scalar(0));
}
//手动实现拉普拉斯算子图像锐化
void my_lapulace_ruihua(const Mat &image, Mat &result)
{result.create(image.size(), image.type());//创建与原图尺寸一样的图像空间/*拉普拉斯滤波核3*30  -1   0-1   5  -10  -1   0  *///处理除最外围一圈外的所有像素值for (int i = 1; i < image.rows - 1; i++){const uchar * pre = image.ptr<const uchar>(i - 1);//前一行const uchar * cur = image.ptr<const uchar>(i);//当前行,访问第i行,ptr函数可以直接访问到第i行const uchar * next = image.ptr<const uchar>(i + 1);//下一行uchar * output = result.ptr<uchar>(i);//输出图像的第i行int ch = image.channels();//通道个数int startCol = ch;//每一行的开始处理点int endCol = (image.cols - 1)* ch;//每一行的处理结束点for (int j = startCol; j < endCol; j++){//输出图像的遍历指针与当前行的指针同步递增, 以每行的每一个像素点的每一个通道值为一个递增量, 因为要考虑到图像的通道数//saturate_cast<uchar>保证结果在uchar范围内*output++ = saturate_cast<uchar>(5 * cur[j] - pre[j] - next[j] - cur[j - ch] - cur[j + ch]);}}//将最外围一圈的像素值设为0result.row(0).setTo(Scalar(0));result.row(result.rows - 1).setTo(Scalar(0));result.col(0).setTo(Scalar(0));result.col(result.cols - 1).setTo(Scalar(0));
}
//调用OpenCV函数实现拉普拉斯算子图像锐化
void lapulace_ruihua(const Mat &image, Mat &result)
{Mat kernel = (Mat_<float>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);filter2D(image, result, image.depth(), kernel);//图片卷积叠加
}
//调用OpenCV函数实现拉普拉斯算子图像
void lapulace(const Mat &image, Mat &result)
{Mat kernel = (Mat_<float>(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0);filter2D(image, result, image.depth(), kernel);
}
void main() {Mat src= imread("C:\\Users\\8\\Desktop\\222.jpg");\\读取图片if (!src.data){cout << "图像读取失败!" << endl;return ;}Mat srcmat;double cc = 0.3;//设置图片尺寸更改比例Size matsize;matsize.width = src.cols*cc;matsize.height = src.rows*cc;resize(src, srcmat, matsize, 0, 0, INTER_AREA);//改变图片大小Mat mat;Mat mat1;bilateralFilter(srcmat, mat, 10,10,10);//双边滤波降噪GaussianBlur(srcmat, mat1, Size(3, 3), 1);//高斯滤波降噪Mat result1;Mat result2;Mat result3;Mat result4;Mat result5;my_lapulace(mat, result1);//手动实现拉普拉斯my_lapulace_ruihua(mat, result2);//手动实现拉普拉斯锐化lapulace(mat, result3);//调用opencv中的拉普拉斯函数lapulace_ruihua(mat, result4);//先双边降噪,调用opencv中的拉普拉斯锐化函数lapulace_ruihua(mat1, result5);//先高斯降噪,调用opencv中的拉普拉斯锐化函数imshow("原图", mat);imshow("4邻域手动实现拉式变换", result1);imshow("4邻域手动实现拉式锐化", result2);imshow("opencv函数拉普拉斯算子", result3);imshow("opencv函数拉普拉斯锐化双边", result4);imshow("opencv函数拉普拉斯锐化高斯", result5);waitKey(0);
}

我一定可以的!!!

拉普拉斯(lapulace)算子图片边缘锐化相关推荐

  1. 数字图像处理(五)——Matlab实现图像的边缘锐化及各种算子的比较

    实验内容 基于单方向梯度算子,Robert算子,Sobel算子,Priwiff算子,Laplacian算子,多方向模板,LOG算子编写matlab增强程序 最后,显示边缘图像和锐化增强图像,并对这些仿 ...

  2. 利用拉普拉斯滤波器提取图像边缘,实现图像锐化

    一. 拉普拉斯滤波器简介: 我们知道: 拉普拉斯算子 ↑ x方向上二阶偏导数的数值近似计算 ↑ y方向上二阶偏导数的数值近似计算 ↑ 拉普拉斯算子在平面内的数值近似 ↑ 拉普拉斯滤波器卷积核表示 ↑ ...

  3. opencv 图片边缘渐变_基于OpenCV的图像卡通化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期将创建一个类似于Adobe Lightroom的Web应用程序 ...

  4. 拉普拉斯Laplace算子和高斯二阶导核(LOG算子)和SIFT算法

    前置知识 边缘检测:图像边缘的强度(边缘线的清晰度)由图像的梯度的强度决定,因为梯度值越强,说明x轴.y轴的像素点变化越快,所以该点处越可能是边缘.边缘和梯度方向是垂直的.举个例子,下图就是用的y方向 ...

  5. Canny算子实现边缘特征提取

    Canny算子实现边缘特征提取 利用C++与OpenCV库实现Canny算子边缘特征提取,虽然利用OpenCV可以直接调用现有的函数实现边缘提取,但学习嘛,还是要知道一些基础的原理,所以我决定学习学习 ...

  6. word图片靠右_如何设置word图片边缘透明

    我们在用WORD写文档的时候也通常会想法设法把文档做的漂漂亮亮的,比如说好好的排个版面,插入个图片什么的,可是插入的图片边缘颜色太明显,该怎么办呢?下面学习啦给大家分享word设置图片边缘透明的技巧, ...

  7. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  8. 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  9. php 图片处理羽化,PS羽化图片边缘方法

    为了让处理的图片更美观,我们抠图之后都会进行边缘的羽化,这样能让图片更好的嵌入另一张图片.那么用PS如何羽化图片边缘?下面小编就为大家详细介绍一下,来看看吧! 步骤 1.打开PS 2.打开准备好的图片 ...

最新文章

  1. 人群运动--Scene-Independent Group Profiling in Crowd
  2. struts2中一个表单中提交多个请求(动态调用方法)
  3. JDK各版本新特性总结
  4. Helm 3 完整教程(十六):Helm 函数讲解(10)版本语义化函数、URL函数、UUID函数
  5. redis高级进阶(2)
  6. Nokia真机测试程序自动退出现象搜集[1][javaME]
  7. 20171001~08总结
  8. java多线程常用面试_Java多线程常用面试题(含答案,精心总结整理)
  9. cad卸载工具_Adobe软件卸载与常见问题解决方案
  10. ubuntu系统安装完显卡驱动出现黑屏和登录死循环的解决方法(新增惠普暗夜精灵7-3070显卡解决方法)
  11. MATLAB 图片压缩一简易方法
  12. 前端学习笔记(注册页面综合案例html5)
  13. 【NOIP2015提高组Day1】斗地主
  14. 樊登读书搞定读后感_《读懂一本书:樊登读书法》_精选读后感_500字
  15. 狂热之下被遗忘的指标—快充倍率
  16. Unity3D 片元NDC空间z值(ZBuffer)转View空间z值,公式推导
  17. 验证码识别之w3cschool字符图片验证码(easy级别)
  18. 【dSPACE】从0开启dSPACE之路(2)具体上手操作步骤
  19. 计算机专业论文可行性研究怎么写,计算机论文怎么写?
  20. 【论文review+总结】屏幕内容图像质量评估SC-IQA(Screen Content Image Quality Assessment)

热门文章

  1. 在线新闻推荐网 Python+Django+Mysql开发技术 基于用户、物品的协同过滤推荐算法 个性化新闻推荐系统 协同过滤推荐算法在新闻网站中的运用 个性化推荐算法、机器学习、分布式大数据、人工智
  2. 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(五)——数据仓库维度建模实例
  3. vmware给虚拟机扩容时,扩展按钮是灰色的解决办法
  4. 【算法】如何根据算法在赌场发家致富?汤普森采样之多臂强盗算法!
  5. 华为全面屏适配踩坑记录
  6. 如何制作Windows11安装U盘
  7. 绎云科技干货铺 | SD-WAN的“武林世界”
  8. 图片中的exif数据
  9. 小马哥---高仿苹果6p 主板型号Q33-qhd 刷机拆机主板图与开机界面图 与Q33-hd主板对比差别图
  10. 金融机构运作与管理(商业银行)复习