ZBLOG

用C++实现,拉普拉斯算子进行边缘增强 import cv2 import numpy as np import matplotlib.pyplot as plt # 读取图像 image_path = r"F:AI/Learning/9022625033_K1609563_T001_4_13.jpg" image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) # 应用拉普拉斯算子进行高频增强 laplacian_image = cv2....

下面是用 C++ 实现拉普拉斯算子进行边缘增强的代码。代码中使用 OpenCV 库来读取图像、应用拉普拉斯算子并进行高频增强,最后显示结果。

C++ 代码实现

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main() {
    // 读取图像
    string imagePath = "F:/AI/Learning/9022625033_K1609563_T001_4_13.jpg";
    Mat image = imread(imagePath, IMREAD_GRAYSCALE);
    
    if (image.empty()) {
        cout << "Error: Could not read the image." << endl;
        return -1;
    }

    // 应用拉普拉斯算子进行高频增强
    Mat laplacianImage;
    Laplacian(image, laplacianImage, CV_64F);

    // 增强高频信息,确保数据类型为8位无符号整数
    Mat enhancedImage;
    add(image, 2 * laplacianImage, enhancedImage);

    // 确保图像值在[0, 255]之间
    enhancedImage.convertTo(enhancedImage, CV_8U);

    // 显示图像
    imshow("Original Image", image);
    imshow("Laplacian Image (High Frequency)", laplacianImage);
    imshow("Enhanced Image (High Frequency Enhanced)", enhancedImage);

    waitKey(0); // 等待按键以关闭窗口

    return 0;
}

说明

  1. 库包含:使用 #include <opencv2/opencv.hpp> 包含 OpenCV 的核心功能。

  2. 读取图像

    • 使用 imread 函数以灰度模式读取指定路径的图像。如果无法读取,则输出错误消息并退出程序。
  3. 应用拉普拉斯算子

    • 使用 Laplacian 函数计算输入图像的拉普拉斯变换,并将其结果存储在 laplacianImage 中。
  4. 高频增强

    • 将原始图像和经过拉普拉斯处理后的高频成分相加,生成增强后的图像。
  5. 数据类型转换

    • 最后通过 convertTo 将增强后的图像转换为 CV_8U 类型,以确保可以正确显示。
  6. 显示结果

    • 使用 imshow 函数显示原始图像、拉普拉斯变换得到的高频信息和增强后的图像。调用 waitKey(0) 等待用户按键后关闭窗口。

编译与运行

要编译和运行此代码,请确保已安装 OpenCV 并配置了相应的开发环境(如 Visual Studio 或 g++)。在命令行中可以使用以下命令编译:

g++ your_code.cpp -o edge_enhancement `pkg-config --cflags --libs opencv4`

替换 your_code.cpp 为你保存此代码文件的实际名称。然后运行生成的可执行文件即可查看效果。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=20921

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?