十五、OpenCV中的图像浮雕技术

文章目录

一、浮雕的基本概念

  浮雕效果(Embossing) 本质上是一种基于边缘检测的图像滤波,它通过增强图像的亮度变化方向(梯度),模拟出"光照从某个方向照射"形成的明暗凹凸感。

浮雕滤波器会:

  • 强化图像的边缘信息;
  • 让一个方向的边缘变亮,反方向的边缘变暗;
  • 使平坦区域接近灰色,从而模拟凹凸感。

二、原理与常用卷积核

浮雕是通过卷积实现的。

常用的浮雕卷积核(Emboss Kernel)如下(以灰度图为例):

从左上到右下的浮雕方向:

cpp 复制代码
[-2 -1  0
 -1  1  1
  0  1  2]

从右上到左下的浮雕方向:

cpp 复制代码
[ 0  1  2
 -1  1  1
 -2 -1  0]

该卷积核的作用是:

  • 对图像进行方向性差分;
  • 将某个方向的像素强化(亮),另一个方向的像素削弱(暗)。

卷积后的像素值范围可能会超出 0,255,所以需要加上灰度偏移(通常加上 128)让图像回到可显示范围。

三、OpenCV 实现步骤

  1. 读取图像
  2. 转换为灰度图
  3. 定义浮雕卷积核
  4. 使用 filter2D() 卷积
  5. 加上灰度偏移
  6. 显示结果

完整示例代码:

cpp 复制代码
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;

int main()
{
    // 1. 读取原图
    Mat src = imread("example.jpg");
    if (src.empty()) {
        cout << "无法读取图像!" << endl;
        return -1;
    }

    // 2. 转为灰度图
    Mat gray;
    cvtColor(src, gray, COLOR_BGR2GRAY);

    // 3. 定义浮雕卷积核(从左上到右下)
    Mat kernel = (Mat_<float>(3,3) << -2, -1, 0,
                                      -1,  1, 1,
                                       0,  1, 2);

    // 4. 卷积
    Mat embossed;
    filter2D(gray, embossed, CV_32F, kernel);

    // 5. 加偏移并裁剪到[0,255]
    embossed = embossed + 128;
    embossed.convertTo(embossed, CV_8U);

    // 6. 显示结果
    imshow("Original", gray);
    imshow("Embossed", embossed);
    waitKey(0);
    return 0;
}
相关推荐
leoZ23110 小时前
第 4 篇:布局骨架——页面壳、栅格、卡片
前端·javascript·vue.js·opencv·计算机视觉·数据挖掘·语音识别
格林威11 小时前
C# 相机图像阴影校正:使用OpenCvSharp实现工业相机阴影平场校正功能
人工智能·数码相机·opencv·计算机视觉·c#·机器视觉·工业相机
AI的探索之旅2 天前
97 个 OpenCV 实例(十九):视频写入,VideoWriter 与 FourCC 编码
人工智能·opencv·音视频
这个人懒得名字都没写2 天前
OpenCV 官方教程中的测试图片Can’t find required data file
python·opencv
AI的探索之旅2 天前
97 个 OpenCV 实例(十七):图片读写,FileStorage 与 JPEG 采样
人工智能·opencv·计算机视觉
牧羊人.3332 天前
计算机视觉基础第15章|DNN实现图像风格迁移
图像处理·人工智能·深度学习·opencv·计算机视觉
欧特克_Glodon2 天前
OpenCV计算机视觉开发入门与实践<二十九>:grabCut算法分割图像
opencv·算法·计算机视觉·图像分割·grabcut 算法
leoZ2313 天前
AI+前端提效-09 AI赋能前端测试:单元测试、E2E测试自动生成,提升覆盖率
前端·人工智能·opencv·目标检测·数据挖掘·单元测试·语音识别
别动我齐刘海3 天前
从0到1独立搭建机器人软件系统
c++·人工智能·神经网络·opencv·目标检测·机器学习·机器人
AI的探索之旅3 天前
97 个 OpenCV 实例(十五):几何校正,透视变换 + ECC 对齐
人工智能·opencv·计算机视觉