0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Canny圖像算法仿真驗證原理與實現(xiàn)

FPGA自習室 ? 來源:FPGA自習室 ? 作者:FPGA自習室 ? 2021-10-15 09:10 ? 次閱讀

先讀為快,以結(jié)果為導(dǎo)向,本期介紹Canny圖像算法仿真驗證,后續(xù)將介紹canny算法原理與實現(xiàn),歡迎持續(xù)關(guān)注,公眾號設(shè)置星標,不錯過每一次推送~

一、簡要說明

1.1 算法流程

Canny邊緣檢測是一種非常流行的邊緣檢測算法,是John Canny在1986年提出的。它是一個多階段的算法,即由多個步驟構(gòu)成:圖像降噪、計算圖像梯度、非極大值抑制。

第一步,圖像降噪。我們知道梯度算子可以用于增強圖像,本質(zhì)上是通過增強邊緣輪廓來實現(xiàn)的,也就是說是可以檢測到邊緣的。但是,它們受噪聲的影響都很大。那么,我們第一步就是想到要先去除噪聲,因為噪聲就是灰度變化很大的地方,所以容易被識別為偽邊緣。

第二步,計算圖像梯度,得到可能邊緣。我們在前面的關(guān)于《圖像梯度》文章中有所介紹,計算圖像梯度能夠得到圖像的邊緣,因為梯度是灰度變化明顯的地方,而邊緣也是灰度變化明顯的地方。當然這一步只能得到可能的邊緣。因為灰度變化的地方可能是邊緣,也可能不是邊緣。這一步就有了所有可能是邊緣的集合。

第三步,非極大值抑制。通?;叶茸兓牡胤蕉急容^集中,將局部范圍內(nèi)的梯度方向上,灰度變化最大的保留下來,其它的不保留,這樣可以剔除掉一大部分的點。將有多個像素寬的邊緣變成一個單像素寬的邊緣。即“胖邊緣”變成“瘦邊緣”。

第四步,雙閾值篩選。通過非極大值抑制后,仍然有很多的可能邊緣點,進一步的設(shè)置一個雙閾值,即低閾值(low),高閾值(high)?;叶茸兓笥趆igh的,設(shè)置為強邊緣像素,低于low的,剔除。在low和high之間的設(shè)置為弱邊緣。進一步判斷,如果其領(lǐng)域內(nèi)有強邊緣像素,保留,如果沒有,剔除。

這樣做的目的是只保留強邊緣輪廓的話,有些邊緣可能不閉合,需要從滿足low和high之間的點進行補充,使得邊緣盡可能的閉合。

參考文章:https://blog.csdn.net/likezhaobin/article/details/6892176

1.2 驗證流程:

搭建一個視頻流Modelsim仿真,在基于FPGA視頻圖像算法開發(fā)過程中,最終目的是為了把攝像頭實時視頻數(shù)據(jù)經(jīng)過一系列的圖像算法,通過顯示設(shè)備顯示出來;在開發(fā)過程中,我們不能總是在FPGA板子上在線調(diào)試,一個是耗時時間長;另一個是不容易找出錯誤,因此,有必要模擬一個視頻時序,用來驗證算法,并有效的利用Matlab工具把靜態(tài)圖片“打散”保存到txt文本里,供Modesim讀取,然后通過Matalb“復(fù)現(xiàn)”處理后的文本。

二、操作步驟

第一步:獲取圖像

截取len圖片,格式為bmp

這里使用上張len圖設(shè)置了一種分辨率 640X480,如果不是,這里可用畫圖軟件打開圖片可以修改分辨率。

第二步:Matlab產(chǎn)成圖像

my_image_gen.m 讀取的len.bmp的彩色圖像,matlab運行后,將使用matlab函數(shù)灰度化的灰度圖像數(shù)據(jù)寫進,image_data.txt。

第三步:Modelsim仿真路徑設(shè)置

仿真工程打開的正確方式:

方法1:保證仿真工程正常打開,解壓后文件需要 放在新建和原路徑一樣的路徑。

方法2:不需要新建相同路徑,需要文本打開并修改仿真工程里的 *.mpf 絕對路徑。

方法3:使用自動仿真腳本。

第四步:開始仿真

1) 打開modelsim 仿真工程,找到work

2)然后找到tb_image_canny功程名,右鍵 simmulate 到仿真頁面

3)最后點擊黃色按鍵,全速仿真,結(jié)束會自動停止。

第五步:matlab 查看圖像

上一步仿真結(jié)果會出現(xiàn)三個txt文件:canny_data.txt 、Gs_data_out.txt、sobel_data_out.txt

直接運行my_image_show.m 即可

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4026

    瀏覽量

    133344
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1080

    瀏覽量

    40378
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1343

    瀏覽量

    109932

原文標題:基于Verilog的Canny圖像算法仿真

文章出處:【微信號:FPGA_Study,微信公眾號:FPGA自習室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    利用VLIB在TMS320C64x/64x+上實現(xiàn)Canny邊緣檢測

    電子發(fā)燒友網(wǎng)站提供《利用VLIB在TMS320C64x/64x+上實現(xiàn)Canny邊緣檢測.pdf》資料免費下載
    發(fā)表于 10-14 11:13 ?0次下載
    利用VLIB在TMS320C64x/64x+上<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>Canny</b>邊緣檢測

    DSP國產(chǎn)教學實驗箱_實驗案例_操作教程:5-11 邊緣檢測

    一、實驗?zāi)康?學習Canny邊緣檢測的原理,掌握圖像的讀取方法,并實現(xiàn)邊緣檢測。 二、實驗原理 邊緣檢測 在數(shù)字圖像中,邊緣是指圖像局部變化
    發(fā)表于 07-19 10:38

    圖像識別算法有哪幾種

    圖像識別算法是計算機視覺領(lǐng)域的核心技術(shù)之一,它通過分析和處理圖像數(shù)據(jù),實現(xiàn)圖像中的目標、場景和物體的識別和分類。
    的頭像 發(fā)表于 07-16 11:22 ?907次閱讀

    圖像識別算法都有哪些方法

    圖像識別算法是計算機視覺領(lǐng)域的核心任務(wù)之一,它涉及到從圖像中提取特征并進行分類、識別和分析的過程。隨著深度學習技術(shù)的不斷發(fā)展,圖像識別算法
    的頭像 發(fā)表于 07-16 11:14 ?4983次閱讀

    圖像識別算法的優(yōu)缺點有哪些

    圖像識別算法是一種利用計算機視覺技術(shù)對圖像進行分析和理解的方法,它在許多領(lǐng)域都有廣泛的應(yīng)用,如自動駕駛、醫(yī)療診斷、安全監(jiān)控等。然而,圖像識別算法
    的頭像 發(fā)表于 07-16 11:09 ?1246次閱讀

    圖像識別算法的核心技術(shù)是什么

    圖像識別算法是計算機視覺領(lǐng)域的一個重要研究方向,其目標是使計算機能夠像人類一樣理解和識別圖像中的內(nèi)容。圖像識別算法的核心技術(shù)包括以下幾個方面
    的頭像 發(fā)表于 07-16 11:02 ?548次閱讀

    opencv圖像識別有什么算法

    圖像識別算法: 邊緣檢測 :邊緣檢測是圖像識別中的基本步驟之一,用于識別圖像中的邊緣。常見的邊緣檢測算法
    的頭像 發(fā)表于 07-16 10:40 ?756次閱讀

    FPGA設(shè)計中 Verilog HDL實現(xiàn)基本的圖像濾波處理仿真

    今天給大俠帶來FPGA設(shè)計中用Verilog HDL實現(xiàn)基本的圖像濾波處理仿真,話不多說,上貨。 1、用matlab代碼,準備好把圖片轉(zhuǎn)化成Vivado Simulator識別的格式,即每行一
    發(fā)表于 05-20 16:44

    K折交叉驗證算法與訓練集

    K折交叉驗證算法與訓練集
    的頭像 發(fā)表于 05-15 09:26 ?481次閱讀

    FPGA圖像處理之CLAHE算法

    在FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來做圖像增強。
    的頭像 發(fā)表于 01-04 12:23 ?2348次閱讀
    FPGA<b class='flag-5'>圖像</b>處理之CLAHE<b class='flag-5'>算法</b>

    數(shù)字電路設(shè)計有哪些仿真驗證流程

    數(shù)字電路設(shè)計的仿真驗證流程是確保設(shè)計能夠正確運行的重要步驟之一。在現(xiàn)代電子設(shè)備中,數(shù)字電路被廣泛應(yīng)用于各種應(yīng)用領(lǐng)域,如計算機、通信設(shè)備、汽車電子等等。因此,設(shè)計師必須通過仿真驗證來確保
    的頭像 發(fā)表于 01-02 17:00 ?1380次閱讀

    國產(chǎn)嵌入式實驗箱操作教程_創(chuàng)龍教儀:5-12 邊緣檢測(LCD顯示)

    一、實驗?zāi)康?學習Canny邊緣檢測的原理,掌握圖像的讀取方法,并實現(xiàn)在LCD上顯示邊緣檢測前后的圖像。 二、實驗原理 邊緣檢測 在數(shù)字圖像
    發(fā)表于 12-14 14:09

    Canny雙閾值邊緣檢測和弱邊緣連接詳解

    在上一篇FPGA圖像處理--Canny邊緣檢測(一)里介紹了Canny邊緣檢測的NMS計算,這里就介紹一下雙閾值邊緣檢測和弱邊緣連接。
    的頭像 發(fā)表于 11-18 17:07 ?2383次閱讀

    python中用Canny邊緣檢測和霍夫變實現(xiàn)車道線檢測方法

    Canny邊緣檢測+霍夫變換 顏色閾值+圖像掩模的方法雖然簡單,但是只能應(yīng)對一些固定顏色車道線的場景。圖像像素受光照影響將是一個極其常見的問題。 canny邊緣檢測+霍夫變換是另外一種
    的頭像 發(fā)表于 11-17 16:55 ?892次閱讀
    python中用<b class='flag-5'>Canny</b>邊緣檢測和霍夫變<b class='flag-5'>實現(xiàn)</b>車道線檢測方法

    FPGA圖像處理之Canny邊緣檢測

    在邊緣檢測算法里面Sobel是比較簡單的一個算法,但是其檢測出來的邊緣往往是比較粗的,效果不是很好,因為我們最理想的邊緣肯定就是一個寬度為1的細線。
    的頭像 發(fā)表于 11-17 09:10 ?1452次閱讀
    FPGA<b class='flag-5'>圖像</b>處理之<b class='flag-5'>Canny</b>邊緣檢測