欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2024年02月23日 10:04:00   作者:天天代碼碼天天  
這篇文章主要為大家詳細(xì)介紹了C# OpenCvSharp如何利用白平衡技術(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ù)實現(xiàn)圖像修復(fù)功能的文章就介紹到這了,更多相關(guān)C# OpenCvSharp圖像修復(fù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#將dll打包到程序中的具體實現(xiàn)

    C#將dll打包到程序中的具體實現(xiàn)

    這篇文章介紹了C#將dll打包到程序中的具體實現(xiàn),有需要的朋友可以參考一下
    2013-10-10
  • C#中StringBuilder用法以及和String的區(qū)別分析

    C#中StringBuilder用法以及和String的區(qū)別分析

    當(dāng)我們在初學(xué)使用C#時,常常會不知道該用StringBuilder合適還是用String高效,下面是我在學(xué)習(xí)當(dāng)中對StringBuilder和String的區(qū)別總結(jié),分享給大家。
    2013-03-03
  • C#根據(jù)IP地址查詢所屬地區(qū)實例詳解

    C#根據(jù)IP地址查詢所屬地區(qū)實例詳解

    這篇文章主要介紹了C#根據(jù)IP地址查詢所屬地區(qū)實例詳解,調(diào)用的接口是免費的接口,有需要的同學(xué)可以研究下
    2021-03-03
  • C#實現(xiàn)PDF合并的項目實踐

    C#實現(xiàn)PDF合并的項目實踐

    有時我們可能會遇到需要的資料或教程被分成了幾部分存放在多個PDF文件中,本文主要介紹了C#實現(xiàn)PDF合并的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C#設(shè)計模式之工廠模式

    C#設(shè)計模式之工廠模式

    本文詳細(xì)講解了C#設(shè)計模式之工廠模式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C# Winform截圖指定控件范圍內(nèi)的圖像的流程步驟

    C# Winform截圖指定控件范圍內(nèi)的圖像的流程步驟

    工作所需,需要截圖軟件跑出來的界面上的圖表,但是窗口本身是可以縮放的,圖表也是做的可以跟著窗體大小一起縮放,所以就寫了一個函數(shù),用于截圖圖表容器內(nèi)的圖像,文中有函數(shù)源碼供大家參考,需要的朋友可以參考下
    2024-10-10
  • 使用C#實現(xiàn)一個簡單的繪圖工具

    使用C#實現(xiàn)一個簡單的繪圖工具

    這篇文章主要為大家詳細(xì)介紹了如何使用C#開發(fā)的簡單繪圖工具,可以將簽名簡單繪圖后的效果以圖片的形式導(dǎo)出,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • C# 10個常用特性匯總

    C# 10個常用特性匯總

    這篇文章主要介紹了C# 10個常用特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 將數(shù)組中指定數(shù)量的元素移動數(shù)組后面的實現(xiàn)代碼

    將數(shù)組中指定數(shù)量的元素移動數(shù)組后面的實現(xiàn)代碼

    本篇文章是對將數(shù)組中指定數(shù)量的元素移動數(shù)組后面的實現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#實現(xiàn)創(chuàng)建,刪除,查找,配置虛擬目錄實例詳解

    C#實現(xiàn)創(chuàng)建,刪除,查找,配置虛擬目錄實例詳解

    這篇文章主要介紹了C#創(chuàng)建,刪除,查找,配置虛擬目錄的方法,以實例形式較為詳細(xì)的分析了C#針對虛擬目錄的創(chuàng)建、刪除、查找等相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08

最新評論