www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I5_03_1_myOCR_cable.m
clear;clc;close all;imtool close all %% 夋憸偺撉崬傒\帵 G = imread('I5_03_1_ocr\IMG_2517_cable.jpg'); figure;imshow(G); %% 暥帤偺偐偡傟傪庢傞乮敀偄彫偝側晹暘偺彍嫀乯 G1 = imopen(G, ones(6)); %廂弅=>朿挘 figure;imshow(G1); %% 儃僩儉僴僢僩張棟偱丄帤偺晹暘偺傒傪巆偡 G2 = imbothat(G1, ones(18)); %Close - 尨夋 figure;imshow(G2); %% 暥帤擣幆 results = ocr(G2) %% 奺専弌椞堟偺妋搙傪昞帵 Ic = insertObjectAnnotation(G2, 'rectangle', results.WordBoundingBoxes, results.WordConfidences, 'FontSize', 30); imtool(Ic); %% 妋搙偺崅偄暥帤偺傒傪昞帵 valid = (results.WordConfidences > 0.6) & ~strcmp(results.Words, '') %妋搙偑0.5埲忋偺傕偺傪庢弌偡丅夵峴偺専弌寢壥傕彍嫀 Ir = insertObjectAnnotation(G, 'rectangle', results.WordBoundingBoxes(valid,:), results.Words(valid), 'FontSize',40); imtool(Ir); %% %% 壒惡偵傛傞撉傒忋偘 NET.addAssembly('System.Speech'); %.NET傾僙儞僽儕偺撉崬傒 speak = System.Speech.Synthesis.SpeechSynthesizer; speak.Volume = 100; speak.SelectVoice('偗偄偙'); words = results.Words(valid); speak.Speak(['嵟弶偺斣崋偼丄' words{1}]); %% 壒惡偵傛傞撉傒忋偘 (塸岅壒惡崌惉僄儞僕儞偼Windows偵晅懏) NET.addAssembly('System.Speech'); %.NET傾僙儞僽儕偺撉崬傒 speak = System.Speech.Synthesis.SpeechSynthesizer; speak.Volume = 100; words = results.Words(valid); speak.Speak(['The first number is' words{1}]); %% 廔椆 %% 擔杮岅偺撉傒忋偘偵偼丄暿搑擔杮岅壒惡崌惉僄儞僕儞偑昁梫 % 塸岅偵娭偟偰偼Windows偵撪憻 %% 夋憸偺撉崬傒\帵 G = imread('I5_3_ocr\IMG_2517_cable.jpg'); figure;imshow(G); %% 暥帤擣幆乮ROI傪巊梡乯 results2 = ocr(G, [2020 900 790 380]) results2 = ocr(G, [1900 900 890 380]) results2 = ocr(G, [1800 900 1000 380]) results2 = ocr(G, [1990 900 800 380]) %% 奺専弌椞堟偺妋搙傪昞帵 Ic2 = insertObjectAnnotation(G, 'rectangle', results2.WordBoundingBoxes, results2.WordConfidences, 'FontSize', 30); imtool(Ic2); %% 寢壥偺昞帵 Ir2 = insertObjectAnnotation(G, 'rectangle', results2.WordBoundingBoxes, results2.Words, 'FontSize',40); imtool(Ir2); %% 廔椆 %% 偡傋偰偺暥帤傪撉傒忋偘傞応崌 speak.Speak('斣崋偼'); words = regexprep(results.Words(valid), '$', ' ','emptymatch') % 暥帤楍偺嵟屻偵僗儁乕僗傪憓擖 speak.Speak([words{:}]); %% 壒惡偵傛傞撉傒忋偘 (English) NET.addAssembly('System.Speech'); %.NET傾僙儞僽儕偺撉崬傒 speak = System.Speech.Synthesis.SpeechSynthesizer; speak.Volume = 100; words = results.Words(valid); speak.Speak(words{1}); %% 暿偺張棟僗僥僢僾 G1 = imerode(G, ones(4)); %敀偄晹暘傪嶍傝丄帤傪懢偔偔偭偒傝偝偣傞 G2 = imbothat(G1, ones(19)); %儃僩儉僴僢僩張棟偱帤偺晹暘偺傒庢弌偡 results = ocr(G2) %OCR % Copyright 2014 The MathWorks, Inc.