最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# OpenCvSharp利用白平衡技術(shù)實(shí)現(xiàn)圖像修復(fù)功能

 更新時間:2024年02月23日 10:04:00   作者:天天代碼碼天天  
這篇文章主要為大家詳細(xì)介紹了C# OpenCvSharp如何利用白平衡技術(shù)實(shí)現(xiàn)圖像修復(fù)功能,文中的示例代碼講解詳細(xì),希望對大家有一定的幫助

C# OpenCvSharp 利用白平衡技術(shù)進(jìn)行圖像修復(fù)

OpenCV xphoto模塊中提供了三種不同的白平衡算法,分別是:灰度世界(GrayworldWB)算法、完完美反射(SimpleWB)算法和基于學(xué)習(xí)的(LearningBasedWB)白平衡算法

效果

灰度世界(GrayworldWB)-白平衡算法

參考鏈接:https://docs.opencv.org/4.x/d7/d71/classcv_1_1xphoto_1_1GrayworldWB.html#details

完美反射(SimpleWB)-白平衡算法

參考鏈接:https://docs.opencv.org/4.x/d1/d8b/classcv_1_1xphoto_1_1SimpleWB.html#details

基于學(xué)習(xí)的(LearningBasedWB)-白平衡算法

參考鏈接:https://docs.opencv.org/4.x/dc/dcb/tutorial_xphoto_training_white_balance.html

代碼

using OpenCvSharp;
using OpenCvSharp.XPhoto;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace C__OpenCvSharp_利用白平衡技術(shù)進(jìn)行圖像修復(fù)
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
        string image_path = "";
        Mat image;
        Mat dst = new Mat();
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = fileFilter;
            if (ofd.ShowDialog() != DialogResult.OK) return;
            pictureBox1.Image = null;
            image_path = ofd.FileName;
            pictureBox1.Image = new Bitmap(image_path);
            image = new Mat(image_path);
            pictureBox2.Image = null;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            image_path = "1.jpg";
            pictureBox1.Image = new Bitmap(image_path);
        }
 
        /// <summary>
        /// 灰度世界(GrayworldWB)-白平衡算法
        /// https://docs.opencv.org/4.x/d7/d71/classcv_1_1xphoto_1_1GrayworldWB.html#details
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }
            pictureBox2.Image = null;
 
            image = new Mat(image_path);
            WhiteBalancer wb = CvXPhoto.CreateGrayworldWB();
            wb.BalanceWhite(image, dst);
            pictureBox2.Image = new Bitmap(dst.ToMemoryStream());
        }
 
        /// <summary>
        /// 完美反射(SimpleWB)-白平衡算法
        /// https://docs.opencv.org/4.x/d1/d8b/classcv_1_1xphoto_1_1SimpleWB.html#details
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }
            pictureBox2.Image = null;
 
            image = new Mat(image_path);
            WhiteBalancer wb = CvXPhoto.CreateSimpleWB();
            wb.BalanceWhite(image, dst);
            pictureBox2.Image = new Bitmap(dst.ToMemoryStream());
        }
 
        /// <summary>
        /// 基于學(xué)習(xí)的(LearningBasedWB)-白平衡算法
        /// https://docs.opencv.org/4.x/dc/dcb/tutorial_xphoto_training_white_balance.html
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }
            pictureBox2.Image = null;
 
            image = new Mat(image_path);
            string model = "";//模型路徑
            WhiteBalancer wb = CvXPhoto.CreateLearningBasedWB(model);
            wb.BalanceWhite(image, dst);
            pictureBox2.Image = new Bitmap(dst.ToMemoryStream());
        }
    }
}

到此這篇關(guān)于C# OpenCvSharp利用白平衡技術(shù)實(shí)現(xiàn)圖像修復(fù)功能的文章就介紹到這了,更多相關(guān)C# OpenCvSharp圖像修復(fù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#讀寫指定編碼格式的文本文件

    C#讀寫指定編碼格式的文本文件

    這篇文章主要為大家詳細(xì)介紹了C#讀寫指定編碼格式文本文件的方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • C#實(shí)現(xiàn)批量下載圖片到本地示例代碼

    C#實(shí)現(xiàn)批量下載圖片到本地示例代碼

    這篇文章主要給大家介紹了關(guān)于C#如何實(shí)現(xiàn)批量下載圖片到本地的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • C#如何利用反射將枚舉綁定到下拉框詳解

    C#如何利用反射將枚舉綁定到下拉框詳解

    這篇文章主要給大家介紹了關(guān)于C#如何利用反射將枚舉綁定到下拉框的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧
    2018-07-07
  • C#中timer定時器用法實(shí)例

    C#中timer定時器用法實(shí)例

    這篇文章主要介紹了C#中timer定時器用法,實(shí)例分析了timer定時器實(shí)現(xiàn)定時觸發(fā)事件的技巧,需要的朋友可以參考下
    2015-04-04
  • c#程序定期把內(nèi)存信息記錄到log日志示例

    c#程序定期把內(nèi)存信息記錄到log日志示例

    這篇文章主要介紹了c#程序定期把內(nèi)存信息記錄到log日志示例,需要的朋友可以參考下
    2014-04-04
  • C#調(diào)用Python程序傳參數(shù)獲得返回值

    C#調(diào)用Python程序傳參數(shù)獲得返回值

    C# 調(diào)用 Python 程序有多種方式,本文主要介紹了4種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中委托的基本概念介紹

    C#中委托的基本概念介紹

    這篇文章主要介紹了C#中委托的基本概念介紹,本文講解了委托的使用、委托類型和委托實(shí)例、委托的合并和刪除、委托是不易變的、委托調(diào)用列表、GetInvocationList等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • c# 隨機(jī)函數(shù)的使用詳解

    c# 隨機(jī)函數(shù)的使用詳解

    本篇文章是對c#隨機(jī)函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 教你創(chuàng)建一個帶診斷工具的.NET鏡像

    教你創(chuàng)建一個帶診斷工具的.NET鏡像

    本文編寫的初衷是因為在群里有很多小伙伴遇到生產(chǎn)環(huán)境性能問題的時候,.NET的runtime鏡像中沒有帶一些工具,安裝和使用起來很麻煩,所以分享一些我們公司內(nèi)部一些技巧,對.NET鏡像帶診斷工具相關(guān)知識感興趣的朋友一起看看吧
    2022-07-07
  • C#中抽象類與接口的區(qū)別詳解

    C#中抽象類與接口的區(qū)別詳解

    本文主要介紹了C#中抽象類與接口的區(qū)別。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03

最新評論

杭锦后旗| 黄梅县| 崇左市| 姚安县| 银川市| 定日县| 丁青县| 马尔康县| 屯留县| 青田县| 大冶市| 苍山县| 广丰县| 武宁县| 和林格尔县| 潍坊市| 洪湖市| 桃园县| 兴安县| 黑河市| 卢氏县| 山西省| 鲁甸县| 苍山县| 罗山县| 台东市| 汉沽区| 江北区| 兴隆县| 苗栗市| 翁牛特旗| 昌黎县| 达州市| 淮北市| 全州县| 和政县| 四会市| 方山县| 马关县| 城固县| 彰武县|