原创 詳細的頻域濾波學習筆記(2)--單變量的離散傅里葉變換(DFT)

這裏直接給出一維離散傅里葉變換的公式,如下: 由歐拉公式可以進一步變形,得到以下形式,方便編寫程序 單變量的傅里葉變換變換相對簡單,爲了更好地理解其含義,這裏給出一個例子,相信看完這個例子,就會明白整個計算過程到底是怎麼回事。

原创 詳細的頻域濾波學習筆記(5)--常見的頻域濾波器

1.頻域濾波的一般步驟   基本的濾波公式有如下形式: 其中F(x,y)是輸入圖像f(x,y)的DFT,H(u,v)是濾波函數(也成爲濾波器,或者濾波傳遞函數),g(x,y)是濾波後的輸出圖像,它是由前兩者乘積的IDFT得到的。

原创 詳細的頻域濾波學習筆記(4)--基2時間抽取FFT

  對於N個數,直接進行DFT計算時需要N2次複數乘法,以及N(N-1)次複數加法,這使得計算效率非常低下,這裏介紹一種提高計算效率的算法,即基於時間抽取的快速傅里葉變換。 1.算法原理   設輸入序列長度爲N=2M(M爲整數),

原创 Leetcode刷題筆記-1

      因爲疫情沒法去學校,空餘時間很多,正好學習下數據結構與算法,在leetcode上看看題,記錄一下學到的一些新東西。 1.關於整數反轉的問題,這個不難,通過取整和取餘運算就可以實現顛倒 代碼如下: 當然也有其他的版本,

原创 Python文件操作之os模塊

  Python中關於文件操作有兩個模塊,os模塊和os.path模塊,其中os模塊是關於文件/目錄常用的函數使用方法,os.path模塊中是關於路徑的一些常用函數,下面一一介紹。 1.os模塊中關於文件/目錄常用的函數使用方法

原创 並查集(Union-Find),你學廢了嗎?

  並查集是一種樹型的數據結構,用於處理一些不相交集合(Disjoint Sets)的合併及查詢問題。直接用一個實例來說明並查集相關的操作。   有如下圖的結構,要判斷圖中是否有連通環的存在。   現在選取幾條邊,如下圖紅線所示

原创 Vector數組總結

簡介: Vector數組的特點: vector數組是一個能存放任意數據類型(類,結構,普通變量類型等)的動態數組,在數據結構中就相當於順序儲存的線性表,尋找元素非常快,但是插入元素的時間卻很大(list是一個雙向鏈表,在同一個位

原创 C++complex複數類

  複數是形如a+bi的數,複數由實部和虛部構成,在C++的模板庫中由complex類,可以直接調用,包含在complex頭文件中,再使用時應該添加#include<complex>。下面介紹一些基本操作: 生成複數對象   co

原创 C++中如何獲取一個二維數組的行和列

對於type Arr[][]形式的二維數組(其他形式的不適用,會出錯),C++沒有給出其行和列的接口函數,我們可以通過sizeof來求得行和列數 sizeof(Arr[0][0])//一個元素佔用的空間, sizeof(Arr[0

原创 你所不知道的python生成器

協程(協同程序)與子例程   一個程序一般都是從函數的第一行代碼開始執行的,結束於return語句、異常或者函數的結束。一旦函數將控制權交給調用者,就意味着全部結束。函數中做的所有工作以及保存在局部變量中的數據將丟失。對於在計算機

原创 遞歸思想實現漢諾塔遊戲攻略

1.介紹        普通的程序員使用迭代,天才程序員使用遞歸。什麼是遞歸?下面這個圖很形象地表現了遞歸思想。遞歸的標準定義是這樣的,遞歸算法(recursion algorithm)在計算機科學中是指一種通過重複將問題分解爲同

原创 通俗易懂的python魔法方法

  python的魔法方法類似於C++中的重載,在python中採用雙下劃線包圍函數名的方法來實現對已有函數的重寫,實現開發者想要的功能。python的魔法方法很多,這裏直接可以參考https://fishc.com.cn/thr

原创 不得不看的博客小技巧

  在編輯文本的時候經常遇到一些問題,這裏記錄一下,後續有新的內容會持續更新。 段落首行縮進 &emsp;//能縮進一個漢字 &ensp;//能縮進一個英文字母 字體大小與顏色修改 <font color=red size=4 f

原创 詳細的頻域濾波學習筆記(3)--二維離散傅里葉變換

  前面提到了單變量的離散傅里葉變換,但是對於圖像來說,是一個二維的座標系,因此在對圖像進行傅里葉變換時,對其進行的是二維的離散傅里葉變換,與一維DFT類似,給出二維的DFT的公式: 其中,f(x,y)是大小爲M*N的數字圖像。與