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

基于C#編寫(xiě)一個(gè)接受圖片流的OCR識(shí)別接口

 更新時(shí)間:2024年03月08日 11:41:59   作者:搬磚的詩(shī)人Z  
這篇文章主要為大家詳細(xì)介紹了如何使用C#寫(xiě)一個(gè)接受圖片流的OCR識(shí)別接口,以及測(cè)試用例調(diào)用接口,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

示例代碼

using Microsoft.AspNetCore.Mvc;
using System;
using System.IO;
using System.Threading.Tasks;

namespace MyAPI.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class OCRController : ControllerBase
    {
        [HttpPost("OCR")]
        public async Task<IActionResult> OCRTextAsync()
        {
            try
            {
                // 檢查是否有文件被上傳
                if (Request.Form.Files.Count > 0)
                {
                    // 獲取上傳的文件
                    var file = Request.Form.Files[0];

                    // 將文件轉(zhuǎn)換為字節(jié)數(shù)組
                    using (var memoryStream = new MemoryStream())
                    {
                        await file.CopyToAsync(memoryStream);
                        byte[] imageData = memoryStream.ToArray();

                        return Ok("OCR result");
                    }
                }
                else
                {
                    return BadRequest("No file uploaded");
                }
            }
            catch (Exception ex)
            {
                return StatusCode(500, $"Internal server error: {ex}");
            }
        }
    }
}

調(diào)用示例代碼:

    private async void button1_Click(object sender, EventArgs e)
    {
        try
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Multiselect = true;
            fileDialog.Title = "請(qǐng)選擇圖片";
            // fileDialog.Filter = "所有文件(*pdf*)|*.jpg*"; //設(shè)置要選擇的文件的類(lèi)型
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                string file = fileDialog.FileName;//返回文件的完整路徑     
                                                  // textBox1.Text = file;
                pictureBox1.Image = Image.FromFile(file);

                MemoryStream stream = new MemoryStream();
                pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] imagedata = stream.GetBuffer();
                await TestApiAsync(imagedata);
            }

        }
        catch (Exception ex)
        {

            MessageBox.Show("請(qǐng)選擇正確的圖片");
        }
    }

    private async Task TestApiAsync(byte[] imageData)
    {
        string url = "http://localhost:5000/api/OCR/OCR";

        // 創(chuàng)建 HttpClient 實(shí)例
        using (var httpClient = new HttpClient())
        using (var formData = new MultipartFormDataContent())
        {
            try
            {
                formData.Add(new ByteArrayContent(imageData), "file", "image.jpg");

                // 發(fā)送 POST 請(qǐng)求到接口
                HttpResponseMessage response = await httpClient.PostAsync(url, formData);

                // 檢查響應(yīng)是否成功
                if (response.IsSuccessStatusCode)
                {
                    // 讀取響應(yīng)內(nèi)容
                    string result = await response.Content.ReadAsStringAsync();
                    Console.WriteLine("OCR 結(jié)果:" + result);
                }
                else
                {
                    Console.WriteLine("請(qǐng)求失敗,狀態(tài)碼:" + response.StatusCode);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("發(fā)生異常:" + ex.Message);
            }
        }
    }

知識(shí)拓展

下面小編為大家整理了使用C#實(shí)現(xiàn)OCR本地圖片識(shí)別文字的示例代碼,希望對(duì)大家有所幫助

文字識(shí)別

 var apiKey = "F--------------------X"; //自己申請(qǐng)的key
  var secretKey = "H----------------------"; //自己申請(qǐng)的key
  
  Ocr client = new Ocr(apiKey, secretKey)
    {
            Timeout = 30000//延時(shí)時(shí)間
   };
//本地圖片識(shí)別文字
var image = File.ReadAllBytes("圖片文件路徑");
	// 調(diào)用通用文字識(shí)別, 圖片參數(shù)為本地圖片,可能會(huì)拋出網(wǎng)絡(luò)等異常,請(qǐng)使用try/catch捕獲
	var result = client.GeneralBasic(image);
	Console.WriteLine(result);
	// 如果有可選參數(shù)
	var options = new Dictionary<string, object>{
	    {"language_type", "CHN_ENG"},
	    {"detect_direction", "true"},
	    {"detect_language", "true"},
	    {"probability", "true"}
	};
	// 帶參數(shù)調(diào)用通用文字識(shí)別, 圖片參數(shù)為本地圖片
	result = client.GeneralBasic(image, options);

網(wǎng)絡(luò)圖片識(shí)別

//網(wǎng)絡(luò)圖片識(shí)別
 var url = "https//www.x.com/sample.jpg";
	// 調(diào)用通用文字識(shí)別, 圖片參數(shù)為遠(yuǎn)程url圖片,可能會(huì)拋出網(wǎng)絡(luò)等異常,請(qǐng)使用try/catch捕獲
	var result = client.GeneralBasicUrl(url);
	Console.WriteLine(result);
	// 如果有可選參數(shù)
	var options = new Dictionary<string, object>{
	    {"language_type", "CHN_ENG"},
	    {"detect_direction", "true"},
	    {"detect_language", "true"},
	    {"probability", "true"}
	};
	// 帶參數(shù)調(diào)用通用文字識(shí)別, 圖片參數(shù)為遠(yuǎn)程url圖片
	result = client.GeneralBasicUrl(url, options);

到此這篇關(guān)于基于C#編寫(xiě)一個(gè)接受圖片流的OCR識(shí)別接口的文章就介紹到這了,更多相關(guān)C# OCR識(shí)別接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實(shí)現(xiàn)學(xué)生模塊的增刪改查

    C#實(shí)現(xiàn)學(xué)生模塊的增刪改查

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)學(xué)生模塊的增刪改查,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#求數(shù)組中元素全排列的方法

    C#求數(shù)組中元素全排列的方法

    這篇文章主要介紹了C#求數(shù)組中元素全排列的方法,較為詳細(xì)的分析了數(shù)組全排列算法的原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • Unity使用鼠標(biāo)旋轉(zhuǎn)物體效果

    Unity使用鼠標(biāo)旋轉(zhuǎn)物體效果

    這篇文章主要為大家詳細(xì)介紹了Unity使用鼠標(biāo)旋轉(zhuǎn)物體效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C#生成隨機(jī)字符串的實(shí)例

    C#生成隨機(jī)字符串的實(shí)例

    本文介紹了“C#生成隨機(jī)字符串的實(shí)例”,需要的朋友可以參考一下
    2013-03-03
  • 基于C#編寫(xiě)獲取硬件信息的工具類(lèi)

    基于C#編寫(xiě)獲取硬件信息的工具類(lèi)

    這篇文章主要為大家詳細(xì)介紹了如何利用C#編寫(xiě)一個(gè)獲取硬件信息的簡(jiǎn)單工具類(lèi),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-11-11
  • C#中接口(interface)的理解

    C#中接口(interface)的理解

    C#中接口(interface)的理解...
    2007-03-03
  • C#實(shí)現(xiàn)打字游戲

    C#實(shí)現(xiàn)打字游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)打字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • c#得到本月有幾周和這幾周的起止時(shí)間示例代碼

    c#得到本月有幾周和這幾周的起止時(shí)間示例代碼

    本篇文章主要是對(duì)c#得到本月有幾周和這幾周的起止時(shí)間的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • C# 7.0中解構(gòu)功能詳解

    C# 7.0中解構(gòu)功能詳解

    這篇文章主要為大家詳細(xì)介紹了C# 7.0中的解構(gòu)功能,解構(gòu)元組、解構(gòu)對(duì)象等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 100行C#代碼實(shí)現(xiàn)經(jīng)典掃雷游戲

    100行C#代碼實(shí)現(xiàn)經(jīng)典掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了如何用100行C#代碼實(shí)現(xiàn)經(jīng)典的掃雷游戲,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02

最新評(píng)論

五原县| 甘泉县| 雷波县| 隆德县| 华坪县| 荥阳市| 正镶白旗| 容城县| 高要市| 洛浦县| 东乡县| 邢台市| 绥滨县| 汝城县| 资中县| 宁乡县| 南阳市| 巫山县| 丹棱县| 荆门市| 永修县| 青阳县| 阜阳市| 屯留县| 镇康县| 桃江县| 徐州市| 芒康县| 崇阳县| 台东县| 拜城县| 安陆市| 砚山县| 滦平县| 建宁县| 怀来县| 乳山市| 壤塘县| 乐安县| 平原县| 新化县|