C# OpenCvSharp 图像锐化:让你的图片焕发细节之美!
创作时间:
作者:
@小白创作中心
C# OpenCvSharp 图像锐化:让你的图片焕发细节之美!
引用
CSDN
1.
https://blog.csdn.net/sD7O95O/article/details/138986050
图像锐化是计算机视觉和图像处理中的一个重要技术,可以增强图像的细节和清晰度。本文将介绍如何使用C#和OpenCvSharp库实现两种图像锐化方法:传统的卷积核锐化和USM(Unsharp Mask)锐化算法。通过本文,你将学习到图像锐化的原理和具体实现代码。
效果展示
让我们先来看看图像锐化的效果:
USM锐化算法原理
USM锐化算法是一种常用的图像锐化方法,其基本步骤如下:
- 对原图像进行高斯滤波
- 用原图像像素值减去一个系数乘以高斯滤波后的图像像素值
- 将得到的像素值归一化到0~255范围内
USM锐化公式为:
(源图像 - w * 高斯模糊) / (1 - w)
其中w表示权重,通常取值范围为0.1~0.9,默认值为0.6。
USM锐化算法可以去除一些细小的干扰细节和图像噪声,相比直接使用卷积核锐化得到的图像更可靠。
项目实现
下面是一个完整的C# WinForms程序示例,实现了图像加载、卷积核锐化和USM锐化功能。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OpenCvSharp;
namespace OpenCvSharp_图像锐化
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
string imgPath = "";
Mat mat;
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = fileFilter;
if (ofd.ShowDialog() != DialogResult.OK) return;
pictureBox1.Image = null;
imgPath = ofd.FileName;
pictureBox1.Image = new Bitmap(imgPath);
}
private void button1_Click(object sender, EventArgs e)
{
if (pictureBox1.Image == null)
{
return;
}
mat = new Mat(imgPath);
// 定义锐化卷积核
InputArray kernel = InputArray.Create<float>(new float[3, 3] {
{ 0, -1, 0 },
{ -1, 5, -1 },
{ 0, -1, 0 }
});
Cv2.Filter2D(mat, mat, mat.Type(), kernel);
Cv2.ConvertScaleAbs(mat, mat);
if (pictureBox2.Image != null)
{
pictureBox2.Image.Dispose();
}
pictureBox2.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat);
}
/// <summary>
/// USM锐化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click(object sender, EventArgs e)
{
if (pictureBox1.Image == null)
{
return;
}
mat = new Mat(imgPath);
Mat blur = new Mat();
Mat usm = new Mat();
Cv2.GaussianBlur(mat, blur, new OpenCvSharp.Size(0, 0), 25);
Cv2.AddWeighted(mat, 1.5, blur, -0.5, 0, usm);
blur.Dispose();
if (pictureBox2.Image != null)
{
pictureBox2.Image.Dispose();
}
pictureBox2.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(usm);
}
}
}
总结
通过本文,你已经学习了图像锐化的两种方法:卷积核锐化和USM锐化算法。同时,通过一个完整的C# WinForms程序示例,你可以快速上手实践这些技术。希望本文对你有所帮助,祝你在图像处理领域取得更好的成果!
热门推荐
湖北六大考古新发现,当阳九里岗遗址成功入选
看过这几个景区,才算真正来过湖北!
劳拉西泮治疗失眠:从用药到停药的全程指导
香港澳门七日游:行程规划、景点推荐与实用攻略
澳门历史城区展现中西交融,香港地标彰显国际视野
绵竹剑南街道:千年酒都核心,获多项省级荣誉
莲子补脾安神助眠,5种搭配方法和食用禁忌
健康科技步入快车道,数据安全成行业发展新课题
互联网网赚全攻略:从内容创作到在线教育的五大途径
中医常用药麻黄:五大功效与三大使用禁忌
从神农尝百草到青蒿素:中药文化的历史传承与现代创新
高铁游婺源,班车怎么选?最全交通攻略来了!
从竞技到旅行,《奔跑吧》新季转型引争议
内蒙古“蒙科聚”平台创新机制,科技成果交易额激增848.4%
中药酵素:富含酶类多酚,兼具六大功效的养生新选择
中药治疗心理疾病:中西医结合展现独特优势
汉服热持续升温,Z世代推动传统服饰创新
传统与科技碰撞,舞台服装设计迎来创新变革
BERT:双向编码如何重塑语言理解
金超群版包青天:一部经典电视剧的文化传承
两岸热议《包青天》:包公文化何以成为连接两岸的精神纽带?
无人机高空基站:应急通信的“空中利器”
32G行车记录仪使用指南:让有限内存发挥最大作用
生活方式调整等五法可有效应对尿肌酐升高
一文读懂肾功能检查:5大指标解读肾脏健康状况
德兴旅游攻略:从湖西口出发,邂逅最美德兴
杨颖退出张真源加入,《奔跑吧》如何保持观众粘性?
浙江卫视奔跑吧走进茶马古道:七天四城展现云南文化
你家有这种玻璃瓶吗?不妨回家找找,3大用途非常实用,涨见识了
家里这些闲置丝带别扔,改造后比专门买的小东西还好用!