美文网首页
图像处理基础-拉普拉斯锐化

图像处理基础-拉普拉斯锐化

作者: 天叔 | 来源:发表于2020-10-26 11:13 被阅读0次

一、拉普拉斯算法

拉普拉斯算法,数学描述上是求二阶导数,如果忘了高数里的二阶导,可以理解为简单的模板算子:

4领域和8领域的拉普拉斯算子: 四领域拉普拉斯算子: 八领域拉普拉斯算子: 拉普拉斯锐化计算: 实现效果:

二、拉普拉斯算法实现:

代码看起来多,其实核心逻辑非常简单,比前面讲的高斯算子简单多了

#include"f_LaplaceSharpen.h"
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<stdio.h>
#include"Commen.h"

int f_LaplaceSharpen(unsigned char* srcData,int width, int height,int stride,int mode)
{
    int ret = 0;
    unsigned char* tempData = (unsigned char*)malloc(sizeof(unsigned char) * height * stride);
    int offset = stride - width * 4;
    int pos;
    memcpy(tempData, srcData, sizeof(unsigned char) * height * stride);
    if(mode == 0)
    {
        for(int j = 1; j < height - 1; j++)
        {
            for(int i = 1; i < width - 1; i++)
            {
                pos = i * 4 + j * stride;
                srcData[pos] = CLIP3(tempData[pos] + (tempData[pos] * 4 - tempData[pos - stride] - tempData[pos - 4] - tempData[pos + 4] - tempData[pos + stride]), 0, 255);
                pos++;
                srcData[pos] = CLIP3(tempData[pos] + (tempData[pos] * 4 - tempData[pos - stride] - tempData[pos - 4] - tempData[pos + 4] - tempData[pos + stride]), 0, 255);
                pos++;
                srcData[pos] = CLIP3(tempData[pos] + (tempData[pos] * 4 - tempData[pos - stride] - tempData[pos - 4] - tempData[pos + 4] - tempData[pos + stride]), 0, 255);
            }
        }
    }
    else
    {
        for(int j = 1; j < height - 1; j++)
        {
            for(int i = 1; i < width - 1; i++)
            {
                pos = i * 4 + j * stride;
                srcData[pos] = CLIP3(tempData[pos] + (tempData[pos] * 8 - tempData[pos - stride] - tempData[pos - 4] - tempData[pos + 4] - tempData[pos + stride] - tempData[pos - 4 - stride] - tempData[pos + 4 - stride] - tempData[pos - 4 + stride] - tempData[pos + 4 + stride]), 0, 255);
                pos++;
                srcData[pos] = CLIP3(tempData[pos] + (tempData[pos] * 8 - tempData[pos - stride] - tempData[pos - 4] - tempData[pos + 4] - tempData[pos + stride] - tempData[pos - 4 - stride] - tempData[pos + 4 - stride] - tempData[pos - 4 + stride] - tempData[pos + 4 + stride]), 0, 255);
                pos++;
                srcData[pos] = CLIP3(tempData[pos] + (tempData[pos] * 8 - tempData[pos - stride] - tempData[pos - 4] - tempData[pos + 4] - tempData[pos + stride] - tempData[pos - 4 - stride] - tempData[pos + 4 - stride] - tempData[pos - 4 + stride] - tempData[pos + 4 + stride]), 0, 255);
            }
        }
    }
    free(tempData);
    return ret;
};

相关文章

  • 图像处理基础-拉普拉斯锐化

    一、拉普拉斯算法 拉普拉斯算法,数学描述上是求二阶导数,如果忘了高数里的二阶导,可以理解为简单的模板算子: 4领域...

  • 图像处理基础-USM锐化

    一、为什么要用USM锐化? 上一篇讲拉普拉斯锐化,不能提供精细的调整,在photoshop中采用USM(Unsha...

  • 图像处理基础-均值滤波

    普通均值滤波 图像处理中,有几种常见的基础算法,比如“模糊”、“灰度”、“浮雕”、“黑白”、“底片”、“锐化”。这...

  • 图像 opencv - python笔记

    默认 基础变换 模糊 锐化 色彩分层 傅里叶变换 高通低通 图像序列转换为视频 人脸识别 基础变换 模糊 锐化 色...

  • 用Matlab实现一些简单的图像锐化

      用Matlab实现一些简单的图像锐化,仅是写一写基本原理,不追求锐化效果。  在入门级的图像处理课上,往往会讲...

  • 2018-03-04~提纲

    图像的像素,频率,格式 灰度值处理,阈值 灰度直方图 灰度梯度图HOG 图像分割 平滑,去噪(中值滤波) 锐化~边...

  • CV02-02:Laplace滤波

      机器视觉中图像滤波处理应该是很基础,很重要的,本主题梳理下Laplace滤波的原理与实现; 拉普拉斯算子 数学...

  • exp1-空间域图像增强

    图像灰度变换 计算显示图像直方图、直方图均衡化 空间域图像平滑、锐化

  • Topaz Sharpen AI for Mac(图像锐化处理软

    Topaz Sharpen AI for Mac是Topaz官方推出的一款优秀的图像锐化处理软件,Topaz Sh...

  • 智能清晰锐化软件Topaz Sharpen AI破解版

    Topaz Sharpen AI for Mac是Topaz官方推出的一款优秀的图像锐化处理软件,Topaz Sh...

网友评论

      本文标题:图像处理基础-拉普拉斯锐化

      本文链接:https://www.haomeiwen.com/subject/fssomktx.html