日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

太神奇了!使用C#实现自动核验健康码:(1)二维码识别

發(fā)布時(shí)間:2023/12/4 C# 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 太神奇了!使用C#实现自动核验健康码:(1)二维码识别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

因?yàn)橐咔榈脑?#xff0c;無(wú)論是進(jìn)入商場(chǎng)還是醫(yī)院、車站,都需要出示健康碼。

現(xiàn)在基本都是采取人工方式核驗(yàn)健康碼,看到綠碼就通過(guò),否則就禁止進(jìn)入。

但是,單靠人工核驗(yàn)健康碼容易造成人員擁堵,增加病毒交叉感染的風(fēng)險(xiǎn),其實(shí)完全可以使用計(jì)算機(jī)來(lái)實(shí)現(xiàn)自動(dòng)核驗(yàn)

原理

如圖所示,健康碼其實(shí)就是個(gè)二維碼,里面存儲(chǔ)了健康碼相關(guān)信息。

因此,只需通過(guò)攝像頭掃描手機(jī)界面,識(shí)別出手機(jī)上的二維碼即可。

實(shí)現(xiàn)

創(chuàng)建一個(gè)WinForm程序,添加下列控件:

  • button 開(kāi)啟攝像頭

  • pictureBox 顯示攝像頭圖像

  • time 定時(shí)識(shí)別攝像頭圖像,頻率設(shè)為100

  • label 顯示健康碼狀態(tài)

1. 開(kāi)啟攝像頭

添加nuget包AForge.Video.DirectShow,設(shè)置button的Click事件:

VideoCaptureDevice?_camera; private?void?button1_Click(object?sender,?EventArgs?e) {_camera?=?new?VideoCaptureDevice(new?FilterInfoCollection(FilterCategory.VideoInputDevice)[0].MonikerString);_camera.NewFrame?+=?camera_NewFrame;_camera.Start();timer1.Enabled?=?true; }private?void?camera_NewFrame(object?sender,?AForge.Video.NewFrameEventArgs?eventArgs) {//將攝像頭每幀圖像顯示到pictureBoxpictureBox1.Image?=?(Bitmap)eventArgs.Frame.Clone();??????? }

2. 識(shí)別二維碼

引用nuget包ZXing.Net,在timer的Tick事件中識(shí)別二維碼:

private?void?timer1_Tick(object?sender,?EventArgs?e) {if?(pictureBox1.Image?!=?null){var?img?=?(Bitmap)pictureBox1.Image.Clone();var?barcodeReader?=?new?BarcodeReader();var?result?=?barcodeReader.Decode(img);if?(result?!=?null){var?healthCode?=?JsonConvert.DeserializeAnonymousType(result.Text,new?{?Color?=?""?});if?(healthCode?!=?null){var?color?=?healthCode.Color;if?(color?==?"green"){label1.Text?=?"綠碼";label1.ForeColor?=?Color.Green;}else?if?(color?==?"red"){label1.Text?=?"紅碼";label1.ForeColor?=?Color.Red;}else?if?(color?==?"yellow"){label1.Text?=?"黃碼";label1.ForeColor?=?Color.Yellow;}else{label1.Text?=?"異常";}}}} }

健康碼的內(nèi)容是一個(gè)json字符串,其中Color屬性代表健康碼狀態(tài)。

3. 運(yùn)行效果

運(yùn)行程序,點(diǎn)擊“開(kāi)啟攝像頭”,可以正常識(shí)別:

結(jié)論

健康碼的內(nèi)容不包含時(shí)間,因此下一步還需要把更新時(shí)間從圖片中識(shí)別出來(lái),保證是最新的健康碼。

如果你覺(jué)得這篇文章對(duì)你有所啟發(fā),請(qǐng)關(guān)注我的個(gè)人公眾號(hào)”My IO“,記住我!

總結(jié)

以上是生活随笔為你收集整理的太神奇了!使用C#实现自动核验健康码:(1)二维码识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。