暑期會(huì)計(jì)師事務(wù)所實(shí)踐報(bào)告及數(shù)字圖像處理實(shí)習(xí)報(bào)告_第1頁
暑期會(huì)計(jì)師事務(wù)所實(shí)踐報(bào)告及數(shù)字圖像處理實(shí)習(xí)報(bào)告_第2頁
暑期會(huì)計(jì)師事務(wù)所實(shí)踐報(bào)告及數(shù)字圖像處理實(shí)習(xí)報(bào)告_第3頁
暑期會(huì)計(jì)師事務(wù)所實(shí)踐報(bào)告及數(shù)字圖像處理實(shí)習(xí)報(bào)告_第4頁
暑期會(huì)計(jì)師事務(wù)所實(shí)踐報(bào)告及數(shù)字圖像處理實(shí)習(xí)報(bào)告_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

暑期會(huì)計(jì)師事務(wù)所實(shí)踐報(bào)告前言在當(dāng)今社會(huì),經(jīng)濟(jì)的發(fā)展日趨快速,各個(gè)企事業(yè)單位的經(jīng)濟(jì)業(yè)務(wù)在快速增長,這就使得社會(huì)對(duì)會(huì)計(jì)人員有了更高的重視和更嚴(yán)格的要求,我們作為即將步入社會(huì)的未來的會(huì)計(jì)專業(yè)人員,為了滿足和順應(yīng)社會(huì)的要求,增強(qiáng)社會(huì)競爭力,更應(yīng)該增強(qiáng)自身的素質(zhì),培養(yǎng)較強(qiáng)的會(huì)計(jì)操作能力和會(huì)計(jì)道德素質(zhì)。而最直接的途徑就是參加實(shí)習(xí)。20**年暑假,我來到廣東省xx會(huì)計(jì)師事務(wù)所實(shí)習(xí),希望能通過此次實(shí)踐讓在學(xué)校學(xué)習(xí)到的知識(shí)實(shí)際與實(shí)際相結(jié)合,學(xué)以致用,對(duì)社會(huì)的了解,培養(yǎng)和訓(xùn)練自己認(rèn)識(shí)、觀察社會(huì)以及分析、解決問題的能力,初步掌握社會(huì)調(diào)查方法,提高專業(yè)技能。這是一家小型會(huì)計(jì)師事務(wù)所,事務(wù)所擁有注冊(cè)會(huì)計(jì)師8人、注冊(cè)稅務(wù)師10人、會(huì)計(jì)師18人以及相應(yīng)各級(jí)業(yè)務(wù)助理人員共計(jì)41人,其中95%以上人員具有大專以上學(xué)歷。單位主要經(jīng)營范圍包括:審計(jì)企業(yè)會(huì)計(jì)報(bào)表,出具審計(jì)報(bào)告;驗(yàn)資企業(yè)資本,出具驗(yàn)資報(bào)告;辦理企業(yè)合并、分立、清算事宜中的審計(jì)業(yè)務(wù),出具相關(guān)報(bào)告;承辦會(huì)計(jì)咨詢、會(huì)計(jì)服務(wù);法律、行政法規(guī)規(guī)定的其他審計(jì)業(yè)務(wù)。事務(wù)所也積極參加各種學(xué)習(xí),提高業(yè)務(wù)水平,在江門范圍內(nèi)積極與相關(guān)稅務(wù)、評(píng)估事務(wù)所合作,拓寬業(yè)務(wù)范圍,規(guī)范業(yè)務(wù)水平。第一天去實(shí)習(xí),我有些不知所措。因?yàn)槲沂墙魅?,而其他人都是在這生活了幾十年的元老,聽著他們說著自己只能聽懂一點(diǎn)點(diǎn)的粵語,突然感覺與他們之間的距離好像相差很大,頓時(shí)都不曉得自己的手應(yīng)該放在哪里,坐在開著冷氣的辦公室里,看到別人進(jìn)進(jìn)出出,忙碌的樣子,我只能待在一邊,一點(diǎn)也插不上手,只能干巴巴地看著,好像什么都做不了,什么都不能做似的,心想我什么時(shí)候才能夠融入進(jìn)去呢。雖然知道實(shí)習(xí)生應(yīng)該積極找工作干,要眼力有活,可是大家似乎并沒有把我當(dāng)作一個(gè)迫切需要學(xué)習(xí)的實(shí)習(xí)生看待,每個(gè)人都在忙著自己的工作。擔(dān)心自己太活潑會(huì)打擾到前輩們的工作,這樣的處境讓我有些尷尬,只好呆呆的坐在一邊,由于經(jīng)驗(yàn)少,我在這方面還有欠缺?,F(xiàn)在才明白,在校做一名學(xué)生,是多么好的事情??!不過仔細(xì)想想自己是早晚要工作的,早晚要步入社會(huì)的,早晚要面對(duì)這些避免不了的事,剛開始,就應(yīng)該踏踏實(shí)實(shí)的干好自己的工作,畢竟又沒有工作經(jīng)驗(yàn),現(xiàn)在有機(jī)會(huì)了就要從各方面鍛煉自己,不然,想念以后干什么都會(huì)干不好的。所以,現(xiàn)在我很珍惜學(xué)習(xí)的機(jī)會(huì),多學(xué)一點(diǎn)總比沒有學(xué)的好,花同樣的時(shí)間,還不如多學(xué),對(duì)以后擇業(yè)會(huì)有很大的幫助。因?yàn)閷?duì)事務(wù)所的工作也不是很了解,不知道自己要做什么該做什么能做什么,偶爾辦公室里很安靜,這讓我感到有些壓抑,雖然看他們的檔案很亂但是也不敢隨便整理,怕整理萬一不好反而給他們帶來麻煩,第二天的時(shí)候他們裝訂檔案就順便教我,慢慢的學(xué)會(huì)了這些能做些事情也就不那么壓抑,能幫忙整理檔案,整理底稿。由于專業(yè)知識(shí)知道的少,對(duì)企業(yè)賬目也不了解,所以只能從別人送來的賬中學(xué)著摸索想別人的憑證賬簿是怎么做出來的,為什么那么做,就這樣對(duì)專業(yè)知識(shí)鞏固的同時(shí)對(duì)實(shí)際單位的賬也有所了解。我是下學(xué)期升大三的學(xué)生,沒有接觸過審計(jì),不知道真正的審計(jì)是一個(gè)什么樣子,事務(wù)所的審計(jì)工作,看起來讓人有一種肅然起敬的感覺,很端莊,很神圣。實(shí)習(xí)的這些天,因?yàn)槲覍?duì)審計(jì)工作沒有什么認(rèn)識(shí),所以我沒有參加任何項(xiàng)目,第一個(gè)主要就是學(xué)習(xí)了他們以前審計(jì)時(shí)留下的工作底稿。在學(xué)習(xí)審計(jì)工作底稿的過程中,我了解到每張工作底稿必須同時(shí)包括以下基本內(nèi)容:被審計(jì)單位名稱;審計(jì)項(xiàng)目名稱;審計(jì)項(xiàng)目時(shí)間或期間;審計(jì)過程記錄;審計(jì)結(jié)論;審計(jì)標(biāo)識(shí)及其說明;索引號(hào)及頁次;編制者姓名及編制日期;復(fù)核者姓名及復(fù)核日期;其他應(yīng)說明事項(xiàng)。審計(jì)工作底稿一般分為綜合類工作底稿、業(yè)務(wù)類工作底稿和備查類工作底稿。綜合類工作底稿指注冊(cè)會(huì)計(jì)師在審計(jì)計(jì)劃階段和審計(jì)報(bào)告階段,為規(guī)劃、控制和總結(jié)整個(gè)審計(jì)工作并發(fā)表審計(jì)意見所形成的審計(jì)工作底稿。它主要包括:審計(jì)業(yè)務(wù)約定書、審計(jì)計(jì)劃、審計(jì)總結(jié)、未審會(huì)計(jì)報(bào)表、試算平衡表、審計(jì)差異調(diào)整匯總表、審計(jì)報(bào)告、管理建議書、被審計(jì)單位管理當(dāng)局聲明書以及注冊(cè)會(huì)計(jì)師對(duì)整個(gè)審計(jì)工作進(jìn)行組織管理的所有記錄和資料。業(yè)務(wù)類工作底稿指注冊(cè)會(huì)計(jì)師在審計(jì)實(shí)施階段為執(zhí)行具體審計(jì)程序所形成的審計(jì)工作底稿。它包括:符合性測(cè)試中形成的內(nèi)部控制問題調(diào)查表和流程圖、實(shí)質(zhì)性測(cè)試中形成的項(xiàng)目明細(xì)表、資產(chǎn)盤點(diǎn)表或調(diào)節(jié)表、詢證函、分析性測(cè)試表、計(jì)價(jià)測(cè)試記錄、截止測(cè)試記錄等等。備查類底稿指注冊(cè)會(huì)計(jì)師在審計(jì)過程中形成的、對(duì)審計(jì)工作僅具有備查作用的審計(jì)工作底稿。主要包括:被審計(jì)單位的設(shè)立批準(zhǔn)證書、營業(yè)執(zhí)照、合營合同、協(xié)議、章程、組織機(jī)構(gòu)及管理人員結(jié)構(gòu)圖、董事會(huì)會(huì)議紀(jì)要、重要經(jīng)濟(jì)合同、相關(guān)內(nèi)部控制制度、驗(yàn)資報(bào)告的復(fù)印件或摘錄。備查類審計(jì)工作底稿隨被審計(jì)單位有關(guān)情況的變化而不斷更新,應(yīng)詳細(xì)列明目錄清單,并將更新的文件資料隨時(shí)歸檔。通常,備查類審計(jì)工作底稿是由被審計(jì)單位或第三者根據(jù)實(shí)際情況提供或代為編制,因此,注冊(cè)會(huì)計(jì)師應(yīng)認(rèn)真審核,并對(duì)所取得的有關(guān)文件、資料標(biāo)明其具體來源。我沒有跟著老師們?nèi)プ鲰?xiàng)目,但是幫忙整理檔案的時(shí)候我能感受到這其中的復(fù)雜性,偶爾也能聽那些跟項(xiàng)目的前輩們提起,他們一般查賬驗(yàn)證,審核財(cái)務(wù)報(bào)表都是要耗費(fèi)很長的時(shí)間,也是很好精力,會(huì)計(jì)的謹(jǐn)慎性原則在這個(gè)時(shí)候得到了充分的體現(xiàn),審計(jì)工作底稿,首先是要有一個(gè)關(guān)于底稿中的符號(hào)說明,還有索引號(hào)之類的。接著就是要有審計(jì)業(yè)務(wù)約定書、管理層聲明書、審計(jì)后出具的報(bào)告以及審計(jì)過后的財(cái)務(wù)報(bào)表。關(guān)于被審計(jì)單位的營業(yè)執(zhí)照、納稅登記表、基本情況說明一類的也應(yīng)該整理于審計(jì)工作底稿中。如果被審計(jì)單位屬于特殊行業(yè),還應(yīng)該提供相關(guān)的文件。最后就是實(shí)施審計(jì)程序的過程中所產(chǎn)生的一些工作底稿、各會(huì)計(jì)科目審定表和一些憑證抽查記錄,例如銀行存款調(diào)節(jié)表,應(yīng)收賬款的審定,預(yù)付賬款的審定等,都要求有相關(guān)憑證來證明。實(shí)施了盤點(diǎn)程序的,還要有相應(yīng)的盤點(diǎn)表,例如存貨類材料及產(chǎn)成品應(yīng)對(duì)企業(yè)實(shí)際庫存進(jìn)行盤點(diǎn),出具相關(guān)證明,尤其企業(yè)固定資產(chǎn)的實(shí)際存在性。這是一項(xiàng)很繁雜的工作,那個(gè)教我的邱會(huì)計(jì)說,會(huì)計(jì)師事務(wù)所的外審的一件很復(fù)雜的工作,這對(duì)一個(gè)人的觀察力與記憶力有很強(qiáng)的要求,你必須對(duì)你看過的東西有印象,等到后面有跟這個(gè)有關(guān)聯(lián)的數(shù)據(jù)出現(xiàn)的時(shí)候,你還能記得住,這樣才能夠練就火眼金睛,不放過任何一個(gè)角落。在審計(jì)的過程中也會(huì)遇到一些計(jì)算,比如利息,稅率等。這些我們要根據(jù)企業(yè)提供的銀行原始憑證進(jìn)行復(fù)算,再對(duì)照企業(yè)做的帳。檢查企業(yè)是否按照實(shí)際的利率計(jì)提利息。很多事情看似簡單,但是老師告訴我要是一旦上手有時(shí)就挺復(fù)雜的,或許這就是實(shí)踐與理論的差別。這次的實(shí)踐,我能夠很深的體會(huì)到實(shí)踐與理論既有聯(lián)系又有區(qū)別。理論是實(shí)踐的基礎(chǔ),我們書本上的知識(shí)都是我們實(shí)踐的基礎(chǔ),有許多知識(shí)不是一目了然的。需要我們掌握非常熟練后加以應(yīng)用。但是書本上的內(nèi)容是實(shí)踐的基礎(chǔ),只有書本上的內(nèi)容學(xué)扎實(shí)了,才能在實(shí)踐中如魚得水,實(shí)踐重要,在學(xué)校學(xué)習(xí)的內(nèi)容同樣重要。平時(shí)在辦公室工作,原來以為辦公室也沒什么事要做,但是其實(shí)遠(yuǎn)不是我們想的那樣,像日常的復(fù)印、傳真、打孔、裝訂、蓋章,這些看上去簡單,但能做到快捷保質(zhì)完成也不是隨便的事,在這方面也能夠使我們的到鍛煉,學(xué)會(huì)做事細(xì)心謹(jǐn)慎,不拖拖拉拉。這次實(shí)習(xí),我在前輩身上看見了作為一個(gè)會(huì)計(jì)人員良好的專業(yè)素質(zhì)、職業(yè)操守、敬業(yè)態(tài)度以及嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度,以前我一直以為作為一個(gè)會(huì)計(jì)專業(yè)的學(xué)生,人際交往能力不是那么重要,但是經(jīng)過這次的實(shí)習(xí),我發(fā)現(xiàn)作為一名會(huì)計(jì)人員也要具備良好的人際交往能力。會(huì)計(jì)部門是企業(yè)管理的核心部門,對(duì)下要收集會(huì)計(jì)信息,對(duì)上要匯報(bào)會(huì)計(jì)信息,對(duì)內(nèi)要相互配合整理會(huì)計(jì)信息,對(duì)外要與社會(huì)公眾和政府部門搞好關(guān)系。如果關(guān)系搞不好,對(duì)于收集資料是一件很麻煩的事情。這一次的實(shí)踐雖然時(shí)間短暫,接觸到的工作很淺,但是依然讓我學(xué)到了許多知識(shí)和經(jīng)驗(yàn),這些都是書本上無法得來的。當(dāng)一個(gè)注冊(cè)會(huì)計(jì)師一直是我的理想,雖然我現(xiàn)在的能力離這個(gè)理想還是很遙遠(yuǎn),但是通過實(shí)踐,我更好的了解自己的不足,了解會(huì)計(jì)工作的本質(zhì),了解這個(gè)社會(huì)的方方面面,能夠讓我更早的為自己做好職業(yè)規(guī)劃,設(shè)定人生目標(biāo),向成功邁進(jìn)一大步。報(bào)告人數(shù)字圖像處理實(shí)習(xí)報(bào)告實(shí)習(xí)項(xiàng)目名稱:OCR-車牌號(hào)碼識(shí)別所屬課程名稱:數(shù)字圖像處理班 級(jí):信息學(xué)號(hào):姓名:指導(dǎo)教師:目錄TOC\o"1-3"\h\u15009一、實(shí)習(xí)目的 317501二、實(shí)習(xí)原理 311854三、實(shí)習(xí)步驟 4247633.1完成車牌定位的整個(gè)過程 4101513.2水平差分提取圖象邊緣 4275143.3完成圖象車牌區(qū)域的初步定位。 4319183.4利用先驗(yàn)知識(shí)標(biāo)識(shí)車牌區(qū)域,進(jìn)行車牌區(qū)域的選擇 4327033.5水平查找后,縱向查找。完成圖象車牌區(qū)域的初步定位。 5113773.6利用先驗(yàn)知識(shí)標(biāo)識(shí)車牌區(qū)域,進(jìn)行車牌區(qū)域的選擇,(橫縱向) 5140403.7計(jì)算偽車牌區(qū)的跳變平均數(shù) 539993.8找出所有偽車牌區(qū)域中具有最大跳變平均數(shù)的區(qū)域號(hào),精確定位車牌 5248363.91找出車牌的左右邊緣 6201223.92二值化圖象 6168223.93車牌字符分割 6207953.94水平方向投影,分割出字符 621196四、實(shí)驗(yàn)程序 615787五、實(shí)習(xí)結(jié)果 2428296六、實(shí)習(xí)心得 28一、實(shí)習(xí)目的(1)掌握數(shù)字圖像處理的相關(guān)知識(shí)及算法。(2)學(xué)習(xí)在VC6.0環(huán)境下編寫車牌定位與識(shí)別程序。(3)了解車牌定位方法,如邊緣檢測(cè)法,基于矢量量化的車牌定位法等。(4)了解車牌字符分割方法,如,投影法,基于車牌字符先驗(yàn)知識(shí)的字符分割方法等。(5)了解車牌字符識(shí)別方法,如字符歸一化,投影法,基于數(shù)字和字母特征的模板匹配法。(6)運(yùn)用編寫的車牌定位與識(shí)別程序?qū)崿F(xiàn)在各種環(huán)境下車牌的識(shí)別。二、實(shí)習(xí)原理基于VC++圖像處理的汽車牌照識(shí)別系統(tǒng)主要包括車牌定位,字符車牌分割和車牌字符識(shí)別三個(gè)關(guān)鍵環(huán)節(jié)其識(shí)別流程圖如圖1所示。原始圖像原始圖像圖像預(yù)處理車牌定位二值化均衡化字符分割字符識(shí)別圖1識(shí)別流程圖其中,原始圖像:原始的汽車圖像;圖像預(yù)處理:對(duì)采集到的圖像進(jìn)行濾波等處理以克服圖像干擾;車牌定位:計(jì)算邊緣圖像的投影面積,尋找峰谷點(diǎn),大致確定車牌位置,再計(jì)算此連通域內(nèi)的寬高比,剔除不在域值范圍內(nèi)的連通域,最后得到的便為車牌區(qū)域;字符分割:利用投影檢測(cè)的字符定位分割方法得到車牌的字符;字符數(shù)據(jù)庫:為第6步的字符識(shí)別建立字符模板數(shù)據(jù)庫;字符識(shí)別:通過基于模板匹配的人工神經(jīng)網(wǎng)絡(luò)算法,通過特征對(duì)比或訓(xùn)練識(shí)別出相關(guān)的字符,得到最后的汽車牌照,包括英文字母和數(shù)字。三、實(shí)習(xí)步驟請(qǐng)打開一個(gè)BMP格式的位圖文件:標(biāo)示圖象的坐標(biāo)標(biāo)示算子的坐標(biāo)標(biāo)識(shí)區(qū)域的地點(diǎn)3.1完成車牌定位的整個(gè)過程程序流程:1.產(chǎn)生副本2.水平差分提取邊緣,尋找橫向的車牌帶狀區(qū)域3.垂直差分提取邊緣,尋找縱向的車牌帶狀區(qū)域4.利用先驗(yàn)知識(shí)標(biāo)識(shí)車牌區(qū)域,進(jìn)行車牌帶狀區(qū)域的選擇,(橫縱向)5.構(gòu)造出車牌矩形域;6.再次利用利用跳變數(shù)選擇車牌矩形區(qū)域,進(jìn)行車牌區(qū)域的最終選擇;7.精確定位車牌,即削弱車牌橫向?qū)挾龋?.更新圖象;3.2水平差分提取圖象邊緣程序流程:1.逐行掃描,sub=|f(x,y)-f(x,y+1)|;2.若差值小于20,則g(x,y)=0;若差值大于30,則增強(qiáng)原圖象,令g(x,y)=g(x,y)+30;3.另最后一列全部為0,即黑色;3.3完成圖象車牌區(qū)域的初步定位。程序流程:1.利用間行掃描的方式找出跳變數(shù)最大的前10行;2.對(duì)Top10行進(jìn)行區(qū)域細(xì)粒度增長選擇;其相似度的選取為:0.7~1.3倍的該行跳變總數(shù);3.二值化,threshold=255;4.任意選擇一列,最好不要邊緣列,可能有干擾(本程序選擇為第十列),搜索出各個(gè)帶狀候選域,存入標(biāo)志;3.4利用先驗(yàn)知識(shí)標(biāo)識(shí)車牌區(qū)域,進(jìn)行車牌區(qū)域的選擇函數(shù)說明:特定應(yīng)用條件,拍攝所得車牌的區(qū)域高度、寬度均有一定的范圍,其大小可以分析圖象后可得根據(jù)統(tǒng)計(jì)得到:車牌的頂部極少出現(xiàn)在高度小于100個(gè)像素的區(qū)域;車牌高度也一般大于20個(gè)像素。程序的最終結(jié)果為滿足條件的經(jīng)過擴(kuò)展了的帶狀區(qū)域程序流程:1.舍棄區(qū)域頂部小于100的待選域2.選擇區(qū)域高度大于20的待選域3.區(qū)域擴(kuò)展,上下各增大5個(gè)像素。若頂部小于5,則頂部坐標(biāo)不變,高度加5;若底部大于圖象的底部,則底部坐標(biāo)不變,高度加5;3.5水平查找后,縱向查找。完成圖象車牌區(qū)域的初步定位。程序流程:1.利用間行掃描的方式找出跳變數(shù)最大的前30行;2.對(duì)Top30行進(jìn)行區(qū)域增長;其相似度的選取為:0.8~1.2倍的該行跳變總數(shù);3.二值化,threshold=255;4.任意選擇一列,(本程序選擇為第十行),搜索出各個(gè)帶狀候選域,存入標(biāo)志;3.6利用先驗(yàn)知識(shí)標(biāo)識(shí)車牌區(qū)域,進(jìn)行車牌區(qū)域的選擇,(橫縱向)函數(shù)說明:國家標(biāo)準(zhǔn):車牌的寬高比近似為3:1;程序流程:1.初始化存儲(chǔ)數(shù)組2.選擇區(qū)域高寬比大于3的待選域函數(shù)功能:再次利用利用跳變數(shù)選擇車牌區(qū)域,進(jìn)行車牌區(qū)域的最終選擇,(橫縱向)程序流程:1.初始化存儲(chǔ)數(shù)組2.計(jì)算每個(gè)偽車牌區(qū)域的跳變數(shù)3.選擇具有最大跳變數(shù)的區(qū)域?yàn)檐嚺茀^(qū)3.7計(jì)算偽車牌區(qū)的跳變平均數(shù)程序流程:1.初始化;2.水平差分,邊緣提?。?.選擇車牌的中間1/3行來計(jì)算每個(gè)偽車牌區(qū)域的跳變平均數(shù);3.8找出所有偽車牌區(qū)域中具有最大跳變平均數(shù)的區(qū)域號(hào),精確定位車牌程序說明:選擇排序,由于水平分割出的偽車牌區(qū)域已經(jīng)比較準(zhǔn)確,故僅作垂直方向的進(jìn)一步定位(縮小寬度)3.91找出車牌的左右邊緣程序流程:1.水平差分,二值化;2.垂直方向投影,統(tǒng)計(jì)各列的投影值;3.去除噪聲點(diǎn);4.找出左右邊緣5.計(jì)算車牌寬度6.車牌精確定位賦值3.92二值化圖象程序說明:threshold=average+delt;程序流程:1.計(jì)算圖象均值;2.計(jì)算圖象方差;3.二值化3.93車牌字符分割程序流程:1.區(qū)域擴(kuò)展;2.投影分割;3.字符區(qū)域的獲??;3.94水平方向投影,分割出字符程序流程;1.統(tǒng)計(jì)各列白象素個(gè)數(shù);2.平滑投影曲線;3.尋找波谷(trough)進(jìn)行分割;四、實(shí)驗(yàn)程序3.1車牌識(shí)別///<summary>///函數(shù)功能:水平方向投影,分割出字符///程序流程:1.統(tǒng)計(jì)各列白象素個(gè)數(shù);///2.平滑投影曲線;///3.尋找波谷(trough)進(jìn)行分割;//二值化算法,二值化為0和1兩種值voidCDipView::BinaryImg(BYTE*DisposeImg,intwidth,intheight){ BYTE*temp=newBYTE[height*width]; intx,y; CopyImg(DisposeImg,temp,width,height); longdoubletotal=0; floataver=0; for(x=0;x<height;x++) { for(y=0;y<width;y++) { total+=DisposeImg[x*width+y]; } } aver=(BYTE)(total/(float)(height*width)); floatdelt; floatsub=0; for(x=0;x<height;x++) { for(y=0;y<width;y++) { sub+=(DisposeImg[x*width+y]-aver)*(DisposeImg[x*width+y]-aver); } } delt=(float)(sqrt(sub/(float)(height*width))); BYTEjudge; judge=(BYTE)(delt+aver); for(x=0;x<height;x++) { for(y=0;y<width;y++) { if(DisposeImg[(x*width)+y]>=judge) { DisposeImg[(x*width)+y]=(BYTE)1; } else { DisposeImg[(x*width)+y]=(BYTE)0; } } } free(temp); }//Hilditch細(xì)化算法voidCDipView::ThinnerHilditch(void*image,unsignedlonglx,unsignedlongly){ char*f,*g; charn[10]; unsignedintcounter; shortk,shori,xx,nrn; unsignedlongi,j; longkk,kk11,kk12,kk**,kk21,kk22,kk23,kk31,kk32,kk33,size; size=(long)lx*(long)ly; g=(char*)malloc(size); if(g==NULL) { printf("errorinallocatingmemory!\n"); return; } f=(char*)image; for(i=0;i<lx;i++) { for(j=0;j<ly;j++) { kk=i*ly+j; if(f[kk]!=0) { f[kk]=1; g[kk]=f[kk]; } } } counter=1; do { printf("%4d*",counter); counter++; shori=0; for(i=0;i<lx;i++) { for(j=0;j<ly;j++) { kk=i*ly+j; if(f[kk]<0) f[kk]=0; g[kk]=f[kk]; } } for(i=1;i<lx-1;i++) { for(j=1;j<ly-1;j++) { kk=i*ly+j; if(f[kk]!=1) continue; kk11=(i-1)*ly+j-1; kk12=kk11+1; kk**=kk12+1; kk21=i*ly+j-1; kk22=kk21+1; kk23=kk22+1; kk31=(i+1)*ly+j-1; kk32=kk31+1; kk33=kk32+1; if((g[kk12]&&g[kk21]&&g[kk23]&&g[kk32])!=0) continue; nrn=g[kk11]+g[kk12]+g[kk**]+g[kk21]+g[kk23]+ g[kk31]+g[kk32]+g[kk33]; if(nrn<=1) { f[kk22]=2; continue; } n[4]=f[kk11]; n[3]=f[kk12]; n[2]=f[kk**]; n[5]=f[kk21]; n[1]=f[kk23]; n[6]=f[kk31]; n[7]=f[kk32]; n[8]=f[kk33]; n[9]=n[1]; xx=0; for(k=1;k<8;k=k+2) { if((!n[k])&&(n[k+1]||n[k+2])) xx++; } if(xx!=1) { f[kk22]=2; continue; } if(f[kk12]==-1) { f[kk12]=0; n[3]=0; xx=0; for(k=1;k<8;k=k+2) { if((!n[k])&&(n[k+1]||n[k+2])) xx++; } if(xx!=1) { f[kk12]=-1; continue; } f[kk12]=-1; n[3]=-1; } if(f[kk21]!=-1) { f[kk22]=-1; shori=1; continue; } f[kk21]=0; n[5]=0; xx=0; for(k=1;k<8;k=k+2) { if((!n[k])&&(n[k+1]||n[k+2])) { xx++; } } if(xx==1) { f[kk21]=-1; f[kk22]=-1; shori=1; } else f[kk21]=-1; } } }while(shori); free(g);}//細(xì)化算法voidCDipView::ThinImage(BYTE*image,intwidth,intheight){ LONGx,y,k; BYTEimage1[10000]; k=0; LONGdigitWidth=width; LONGdigitHeight=height; for(x=0;x<digitWidth;x++) { image[x*width+0]=(BYTE)0; image[x*width+digitHeight-1]=(BYTE)0; } for(y=0;y<digitHeight;y++) { image[0*width+y]=(BYTE)0; image[(digitWidth-1)*width+y]=(BYTE)0; } for(x=0;x<digitWidth;x++) { for(y=0;y<digitHeight;y++) { image1[k]=image[x*width+y]; if(image1[k]!=0) image1[k]=(BYTE)1; k++; } } ThinnerHilditch((void*)image1,digitWidth,digitHeight); k=0; for(x=0;x<digitWidth;x++) { for(y=0;y<digitHeight;y++) { image[x*width+y]=image1[k]; if(image[x*width+y]!=0) image[x*width+y]=(BYTE)1; k++; } }}//獲取特征值的函數(shù)voidCDipView::GetFeature(BYTE*image,longwidth,longheight,double*feature,intsize){ inti,j; for(i=0;i<**;i++) feature[i]=0; //圖象是20×36大小的,分成9塊 //第一塊 for(i=0;i<7;i++) { for(j=0;j<12;j++) { if(image[i*width+j]==1) feature[0]+=1.0; } } //第二塊 for(i=0;i<7;i++) { for(j=12;j<24;j++) { if(image[i*width+j]==1) feature[1]+=1.0; } } //第三塊 for(i=0;i<7;i++) { for(j=24;j<36;j++) { if(image[i*width+j]==1) feature[2]+=1.0; } } //第四塊 for(i=7;i<**;i++) { for(j=0;j<12;j++) { if(image[i*width+j]==1) feature[3]+=1.0; } } //第五塊 for(i=7;i<**;i++) { for(j=12;j<24;j++) { if(image[i*width+j]==1) feature[4]+=1.0; } } //第六塊 for(i=7;i<**;i++) { for(j=24;j<36;j++) { if(image[i*width+j]==1) feature[5]+=1.0; } } //第七塊 for(i=**;i<20;i++) { for(j=0;j<12;j++) { if(image[i*width+j]==1) feature[6]+=1.0; } } //第八塊 for(i=**;i<20;i++) { for(j=12;j<24;j++) { if(image[i*width+j]==1) feature[7]+=1.0; } } //第九塊 for(i=**;i<20;i++) { for(j=24;j<36;j++) { if(image[i*width+j]==1) feature[8]+=1.0; } } //下面統(tǒng)計(jì)方向交點(diǎn)特征 for(j=0;j<36;j++) { if(image[7*width+j]==1) feature[9]+=1.0; } for(j=0;j<36;j++) { if(image[***width+j]==1) feature[10]+=1.0; } for(i=0;i<20;i++) { if(image[i*width+12]==1) feature[11]+=1.0; } for(i=0;i<20;i++) { if(image[i*width+24]==1) feature[12]+=1.0; }}//識(shí)別函數(shù),第一個(gè)參數(shù)為LoadCharLib讀出的數(shù)組,//第二個(gè)參數(shù)為LoadCharLib的返回值(即樣本個(gè)數(shù)),//將上面獲得的特征值傳入第三個(gè)參數(shù),返回為識(shí)別結(jié)果CStringCDipView::Recognize(sample*sa,intnum,double*feature){ intj; doublemin=100000.0; CStringResult; for(inti=0;i<num;i++) { doublediff=0.0; for(j=0;j<9;j++) { diff+=fabs(feature[j]-sa[num].feature[j]); } for(j=9;j<**;j++) { diff+=fabs(feature[j]-sa[num].feature[j])*9; } if(diff<min) { min=diff; Result.Format("%s",sa[num].trueClass); } } returnResult; }*///字符識(shí)別/*voidCDipView::GetCharacter(){ //CDipDoc*pDoc=GetDocument(); //intwidth,height; //width=pDoc->ImgWidth; //height=pDoc->ImgHeight; //samplemysa[500];//doublemyfeature[**];//intnum;//CStringresult[10]; //BYTE*Img; //introw=0; //intcol=0; //intx=-1; //inty=-1; //intw=0; //inth=0; //intarea=0; //for(area=0;area<10;area++); //{ // if(cRects[area].w>0) // { // x=cRects[area].x; // y=cRects[area].y; // w=cRects[area].w; // h=cRects[area].h;//Img=newBYTE[w*h]; // for(row=0;row<h;row++) // { // for(col=0;col<w;col++) // {////Img[row*w+col]=pDoc->ImgData[y*width+x]; // } // } //// //num=LoadCharLib(mysa);//獲取樣本庫保存到mysa[500]中 //// //Zoom(Img,w,h);//對(duì)切割出的圖象進(jìn)行大小歸一化 //// //ThinImage(Img,w,h);//對(duì)大小歸一化后的圖象進(jìn)行細(xì)化 //// //GetFeature(Img,w,h,myfeature,**); //圖象細(xì)化以后就可以提取特征了 //// //result[area]=Recognize(mysa,num,myfeature); // } //} //delete[]mysa; //delete[]myfeature; //delete[]result;}*/voidCDipView::OnCharacterRecg(){ CMainFrame*MainFrame=(CMainFrame*)this->GetParent()->GetParent(); CCharView*pchview=(CCharView*)MainFrame->m_wndSplitter.GetPane(0,1); CDigitClassdigitTest; CStringclassResult; CStringtempstr; CStringstrInfo,strTemp; intrecgpos=1;doubletemp[**]; for(intk=0;k<CharacterNum;k++) { if((float)cDatas[k].h/cDatas[k].w>4) { if(recgpos!=1&&recgpos<8) { classResult=classResult+"1"; recgpos++; } continue; } for(intx=0;x<cDatas[k].h;x++) { for(inty=0;y<cDatas[k].w;y++) { digitTest.digitarray[y][x]=cDatas[k].Img[x*cDatas[k].w+y]; } } digitTest.digitHeight=cDatas[k].h; digitTest.digitWidth=cDatas[k].w; digitTest.FixSize(); digitTest.BinaryDigit(); //digitTest.MarrBinary(); digitTest.ThinDigit_1(); pchview->m_result.SetSel(0,-1); pchview->m_result.ReplaceSel(""); CStringstrInfo,strTemp; strInfo.Format(""); inti,j; for(i=0;i<digitTest.digitHeight;i++) { for(j=0;j<digitTest.digitWidth;j++) { if(digitTest.digitarray[j][i]==1) strInfo+="■"; else strInfo+=""; } strInfo+="\r\n"; } pchview->m_result.SetSel(0,-1); pchview->m_result.ReplaceSel(strInfo); // AfxMessageBox("hello"); digitTest.GetFeature(); if(recgpos==1) { doublemin=100000.0; POSITIONpos=hanList.GetHeadPosition(); while(pos!=NULL) { Samplesa; sa=hanList.GetNext(pos); doublediff=0.0; for(j=0;j<9;j++) { diff+=fabs(digitTest.feature[j]-sa.feature[j]); } for(j=9;j<**;j++) { diff+=fabs(digitTest.feature[j]-sa.feature[j])*9; } if(diff<min) { min=diff; tempstr.Format("%s",sa.trueClass); } } classResult=classResult+tempstr; } if(recgpos==2) { doubletemp[**]; doubleresult1[26]; boolt=0; for(i=0;i<**;i++) { temp[i]=digitTest.feature[i]/15; } char_bp.Identify(temp,**,result1,26); for(i=0;i<26;i++) { if(ABS(result1[i]-1)<0.1) { tempstr.Format("%c",i+'A'); classResult=classResult+tempstr; t=1; } } if(t!=1) classResult=classResult+'?'; } // strTemp.Format("%d",classResult); if(recgpos==3) { doubletemp[**]; doubleresult1[36]; boolt=0; for(i=0;i<**;i++) { temp[i]=digitTest.feature[i]/15; } char_num_bp.Identify(temp,**,result1,36); for(i=0;i<36;i++) { if(ABS(result1[i]-1)<0.2) { if(i<=9) { tempstr.Format("%c",i+'0'); classResult=classResult+tempstr; t=1; } else { tempstr.Format("%c",i+'A'-10); classResult=classResult+tempstr; t=1; } // tempstr.Format("%c",i); } } if(t!=1) classResult=classResult+'?'; } if(recgpos>3&&recgpos<8) { doubletemp[**]; doubleresult1[10]; boolt=0; for(i=0;i<**;i++) { temp[i]=digitTest.feature[i]/15; } char_num_bp.Identify(temp,**,result1,10); for(i=0;i<10;i++) { if(ABS(result1[i]-1)<0.1) { tempstr.Format("%c",i+'0'); classResult=classResult+tempstr; t=1; } } if(t!=1) classResult=classResult+'?'; } // strInfo+="\n\r識(shí)別結(jié)果為:"; // strInfo+=classResult; recgpos++; // pchview->m_result.SetSel(0,-1); //pchview->m_result.ReplaceSel(strInfo); }//Sampletemp;inta; strInfo+="\n\r驗(yàn)證結(jié)果為:";strInfo+=classResult; if(strcmp(classResult,"粵T2205"))strInfo+="錯(cuò)誤"; elsestrInfo+="正確"; pchview->m_result.SetSel(0,-1); pchview->m_result.ReplaceSel(strInfo); }voidCDipView::OnTrainfromvehicle(){ OnLocate(); OnVSplit(); CMainFrame*MainFrame=(CMainFrame*)this->GetParent()->GetParent(); CCharView*pchview=(CCharView*)MainFrame->m_wndSplitter.GetPane(0,1); CDigitClassdigitTrain; CRecvChardlg; CStringm_class; for(intk=0;k<CharacterNum;k++) { for(intx=0;x<cDatas[k].h;x++) { for(inty=0;y<cDatas[k].w;y++) { digitTrain.digitarray[y][x]=cDatas[k].Img[x*cDatas[k].w+y]; } } digitTrain.digitHeight=cDatas[k].h; digitTrain.digitWidth

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論