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

C#利用deskew算法實現(xiàn)圖像文本傾斜校正

 更新時間:2024年01月03日 10:40:03   作者:FL1623863129  
這篇文章主要為大家詳細(xì)介紹了C#如何利用deskew算法實現(xiàn)圖像文本傾斜校正,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

算法介紹

讓我們開始討論Deskeweing算法的一般概念。我們的主要目標(biāo)是將旋轉(zhuǎn)的圖像分成文本塊,并確定它們的角度。為了讓您詳細(xì)了解我將使用的方法:

照常-將圖像轉(zhuǎn)換為灰度。

應(yīng)用輕微的模糊以減少圖像中的噪點。

現(xiàn)在,我們的目標(biāo)是找到帶有文本的區(qū)域,即圖像的文本塊。為了使文本塊檢測更容易,我們將反轉(zhuǎn)并最大化圖像的顏色,這將通過閾值化來實現(xiàn)。因此,現(xiàn)在文本變?yōu)榘咨ㄇ『脼?55,255,255白色),而背景為黑色(同樣為0,0,0黑色)。

要查找文本塊,我們需要合并該塊的所有打印字符。我們通過膨脹(擴展白色像素)來實現(xiàn)。在X軸上使用較大的內(nèi)核可以消除單詞之間的所有空間,而在Y軸上使用較小的內(nèi)核可以將彼此之間的一個塊的行混合在一起,但保持文本塊之間的較大間隔不變。

現(xiàn)在,用最小面積矩形包圍輪廓的簡單輪廓檢測將形成我們需要的所有文本塊。

確定傾斜角度的方法有很多種,但我們將堅持簡單的方法-使用最大的文本塊并使用其角度。

效果展示

實現(xiàn)部分代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace FIRC
{
    public partial class Form1 : Form
    {
        Bitmap src = null;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "圖文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";
            openFileDialog.RestoreDirectory = true;
            openFileDialog.Multiselect = false;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
              
                src = new Bitmap(openFileDialog.FileName);
                pictureBox1.Image = src;
 
 
            }
 
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            if(pictureBox1.Image==null)
            {
                return;
            }
            Stopwatch sw = new Stopwatch();
            sw.Start();
            var gd = new gmseDeskew(src);
            var angle = gd.GetSkewAngle();
            var resultImage = gmseDeskew.RotateImage(src, angle);
            sw.Stop();
            this.Text = "耗時" + sw.Elapsed.TotalSeconds + "秒";
            pictureBox2.Image = resultImage;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void btn_video_Click(object sender, EventArgs e)
        {
 
  
        }
    }
}

到此這篇關(guān)于C#利用deskew算法實現(xiàn)圖像文本傾斜校正的文章就介紹到這了,更多相關(guān)C#圖像文本校正內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • C#中多態(tài)現(xiàn)象和多態(tài)的實現(xiàn)方法

    C#中多態(tài)現(xiàn)象和多態(tài)的實現(xiàn)方法

    這篇文章主要介紹了C#中多態(tài)現(xiàn)象和多態(tài)的實現(xiàn)方法,較為詳細(xì)的分析了多態(tài)的原理與C#實現(xiàn)多態(tài)的方法,以及相關(guān)的注意事項,需要的朋友可以參考下
    2015-05-05
  • C# 單元測試全解析

    C# 單元測試全解析

    這篇文章主要介紹了C# 單元測試的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C# using static讓靜態(tài)成員訪問更簡潔

    C# using static讓靜態(tài)成員訪問更簡潔

    在C#中,使用using static指令可以使靜態(tài)成員的訪問更加簡潔和直接,這通常用于簡化對靜態(tài)類或靜態(tài)方法的調(diào)用,特別是在頻繁使用某個類的靜態(tài)成員時,這篇文章給大家介紹C# using static讓靜態(tài)成員訪問更簡潔,感興趣的朋友一起看看吧
    2026-05-05
  • 利用C#實現(xiàn)分割GIF圖片

    利用C#實現(xiàn)分割GIF圖片

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)分割GIF圖片的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • C# 通過 inline-asm 解決嵌入x86匯編

    C# 通過 inline-asm 解決嵌入x86匯編

    此篇文章通過C#語言解決嵌入x86匯編,主要通過INline-asm方法來實現(xiàn),下面我通過圖片和代碼的形式給大家分享下,需要的朋友可以參考下
    2015-07-07
  • C#中的委托介紹

    C#中的委托介紹

    這篇文章主要介紹了C#中的委托介紹,本文講解了聲明委托的方式、匿名方法、多播委托等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • C#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證

    C#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證

    下面小編就為大家?guī)硪黄狢#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證。小編覺得挺不錯的,現(xiàn)在分享給大家。給大家一個參考。一起跟隨小編過來看看吧
    2016-03-03
  • 使用C#實現(xiàn)DataSet與Excel的互相轉(zhuǎn)換

    使用C#實現(xiàn)DataSet與Excel的互相轉(zhuǎn)換

    在日常開發(fā)中,DataSet 是 .NET 程序中常用的數(shù)據(jù)容器,而 Excel 文件 則是數(shù)據(jù)交換和報表的常見格式,在實際業(yè)務(wù)中,經(jīng)常需要將數(shù)據(jù)庫查詢結(jié)果保存到 Excel 文件,所以本文介紹了如何使用C#實現(xiàn)DataSet與Excel的互相轉(zhuǎn)換,需要的朋友可以參考下
    2025-11-11
  • C#中?,??,??=,?:?,?.?,?[]各種問號的用法和說明詳解

    C#中?,??,??=,?:?,?.?,?[]各種問號的用法和說明詳解

    這篇文章主要介紹了C#中?、??、??=、?:、?.、?[]六種問號的用法和說明,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-11-11
  • c# 中間表的實現(xiàn)方式

    c# 中間表的實現(xiàn)方式

    本文主要介紹了c# 中間表的實現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03

最新評論

万载县| 平阴县| 湖南省| 巴中市| 锦州市| 永川市| 汪清县| 枣庄市| 辽宁省| 江城| 涡阳县| 安达市| 凉山| 龙江县| 平塘县| 福清市| 乐亭县| 美姑县| 开远市| 胶州市| 德令哈市| 都安| 抚顺市| 凤冈县| 额济纳旗| 福贡县| 敖汉旗| 华容县| 明溪县| 龙里县| 大石桥市| 涿州市| 乳山市| 安达市| 兴山县| 新巴尔虎左旗| 璧山县| 应用必备| 福建省| 平舆县| 建平县|