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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python高通滤波器设计_python实现直方图均衡化,理想高通滤波与高斯低通滤波

發(fā)布時間:2025/4/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python高通滤波器设计_python实现直方图均衡化,理想高通滤波与高斯低通滤波 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫在前面

HIT大三上學期視聽覺信號處理課程中視覺部分的實驗二,經(jīng)過和學長們實驗的對比發(fā)現(xiàn)每一級實驗要求都不一樣,因此這里標明了是2019年秋季學期的視覺實驗二。

由于時間緊張,代碼沒有進行任何優(yōu)化,實驗算法僅供參考。

實驗要求

實現(xiàn)圖像直方圖均衡化,要求顯示均衡化前、后直方圖以及均衡化后圖像。

對單通道圖像進行DFT變換,要求顯示幅度圖和相位圖,并設(shè)計理想高通濾波器和高斯低通濾波器對圖像進行頻域濾波,并顯示濾波之后的圖像。 注:除DFT和IDFT外,不允許調(diào)庫

實驗代碼

代碼首先貼在這里,僅供參考

首先是實現(xiàn)圖像直方圖均衡化的代碼

from ReadBmp import ReadBmp

import matplotlib.pyplot as plt

import numpy as np

filename1 = "1.bmp"

bmp = ReadBmp(filename1)

bmp.gray()

# 統(tǒng)計各像素點數(shù)

h = np.array([0 for i in range(256)])

h1 = []

for pixel in bmp.data:

h[pixel[0]] = h[pixel[0]] + 1

h1.append(pixel[0])

# 畫出原先的直方圖

plt.subplot(1,2,1)

plt.hist(h1, bins = 256)

# 歸一化

hs = h / len(bmp.data)

# 計算累計分布

hp = np.array([0.0 for i in range(256)])

for i in range(256):

hp[i] = np.round(np.sum(hs[0:i+1]) * 255)

T = hp.astype('uint8')

# 創(chuàng)建新圖像,并統(tǒng)計新圖像的各個像素點的個數(shù)

hn = np.array([0 for i in range(256)])

h2 = []

for pixel in bmp.data:

s = T[pixel[0]]

pixel[0] = s

pixel[1] = s

pixel[2] = s

hn[pixel[0]] = hn[pixel[0]] + 1

h2.append(s)

bmp.creataBmp("2.bmp")

# 畫出新圖像的直方圖

plt.subplot(1,2,2)

plt.hist(h2, bins = 256)

plt.show()

其中讀取bmp圖像的程序是我自己寫的,這里不再贅述(直接調(diào)用了實驗一寫好的bmp文件讀取程序,具體代碼見github)

然后是理想高通濾波和高斯低通濾波的程序

import numpy as np

import cv2

import matplotlib.pyplot as plt

def IdealHighPassFiltering(f_shift):

# 設(shè)置濾波半徑

D0 = 8

# 初始化

m = f_shift.shape[0]

n = f_shift.shape[1]

h1 = np.zeros((m, n))

x0 = np.floor(m/2)

y0 = np.floor(n/2)

for i in range(m):

for j in range(n):

D = np.sqrt((i - x0)**2 + (j - y0)**2)

if D >= D0:

h1[i][j] = 1

result = np.multiply(f_shift, h1)

return result

def GaussLowPassFiltering(f_shift):

# 設(shè)置濾波半徑

D0 = 8

# 初始化

m = f_shift.shape[0]

n = f_shift.shape[1]

h1 = np.zeros((m, n))

x0 = np.floor(m/2)

y0 = np.floor(n/2)

for i in range(m):

for j in range(n):

D = np.sqrt((i - x0)**2 + (j - y0)**2)

h1[i][j] = np.exp((-1)*D**2/2/(D0**2))

result = np.multiply(f_shift, h1)

return result

img =cv2.imread('1.bmp',0)

f=np.fft.fft2(img)

f_shift=np.fft.fftshift(f)

# 幅度圖

s= np.log(abs(f_shift))

# 相位圖

p= abs(np.angle(f_shift))

plt.subplot(2,2,1)

plt.imshow(s, 'gray')

plt.subplot(2,2,2)

plt.imshow(p, 'gray')

# 理想高通濾波

IHPF = IdealHighPassFiltering(f_shift)

new_f1 = np.fft.ifftshift(IHPF)

new_image1 = np.uint8(np.abs(np.fft.ifft2(new_f1)))

plt.subplot(2,2,3)

plt.imshow(new_image1, 'gray')

# 高斯低通濾波

GLPF = GaussLowPassFiltering(f_shift)

new_f2 = np.fft.ifftshift(GLPF)

new_image2 = np.uint8(np.abs(np.fft.ifft2(new_f2)))

plt.subplot(2,2,4)

plt.imshow(new_image2, 'gray')

plt.show()

實驗結(jié)果

實驗結(jié)果的圖像如下圖所示

這是直方圖均衡化的運行結(jié)果,其中左圖是做直方圖均衡化前對像素統(tǒng)計的直方圖,右圖是做直方圖均衡化后對像素統(tǒng)計的直方圖

這是畫出圖像的幅度圖和相位圖,對圖像做理想高通濾波和高斯低通濾波的結(jié)果,其中1是幅度圖,2是相位圖,3是理想高通濾波的結(jié)果,4是高斯低通濾波的結(jié)果

要點講解

關(guān)于實驗算法的大致流程,已在程序中用注釋標明,這里只記錄需要注意的地方

在直方圖均衡化中,要注意直方圖函數(shù)的用法,該函數(shù)可以對輸入的矩陣中的數(shù)值進行自動的分類,而不用手動分好之后再用直方圖函數(shù)去畫,之前沒有仔細看該函數(shù)的用法,導致找了好長時間沒找到問題。

關(guān)于直方圖均衡化的原理,需要一定的數(shù)學公式的推導,然而其結(jié)論十分簡單,只有一個公式,對理解公式推導無需求的直接拿公式來用就可以了。(即程序中的歸一化加計算累積分布部分)

關(guān)于理想高通濾波和高斯低通濾波,可以看到其代碼大體框架是一致的,只有中間if語句中的判斷條件不一樣,理解原理之后直接替換if語句即可。

最終畫出理想高通濾波的圖像時,網(wǎng)上給出的一些運行結(jié)果可能和我們運行的不一致,類似于下圖中圖一的圖像,原因在于這一句話中:new_image1 = np.uint8(np.abs(np.fft.ifft2(new_f1))),注意到中間調(diào)用了np.abs()函數(shù),由于經(jīng)過DFT變換之后所得的數(shù)值是復數(shù),而不是實數(shù),若將np.abs()替換為np.real(),即只取其實部,則得到的是圖一,而使用np.abs(),得到的則是圖二。個人感覺圖二才是相對正確一些的結(jié)果,圖一相當于將虛部舍棄掉了,這是不太好的。

以下是圖一

以下是圖二

知識總結(jié)

關(guān)于直方圖均衡化的數(shù)學原理,我參考的是這篇博客。直方圖均衡化的公式推導較為復雜,然而其結(jié)果卻十分簡單,因此在python中一個循環(huán)就實現(xiàn)了。

直方圖均衡化的數(shù)學原理

其中在理想高通和高斯低通濾波器中,需要用到矩陣乘法,關(guān)于幾種不同的矩陣乘法參考的是這篇博客

numpy 三種矩陣乘法

實驗總結(jié)

很簡單的一個實驗,總時間加起來大致4個小時左右,做這么快的主要原因是,本來同學來哈爾濱找我玩,正玩得開心,結(jié)果突然告訴我這個實驗要今天晚上交(之前以為這個實驗還有一周的ddl),所以潛能爆發(fā),從三點寫到六點差不多就寫完了

總結(jié)

以上是生活随笔為你收集整理的python高通滤波器设计_python实现直方图均衡化,理想高通滤波与高斯低通滤波的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 性色tv | 精品人妻一区二区三区在线视频 | 伊人精品视频在线观看 | 亚洲精品999 | 亚洲AV无码久久精品国产一区 | 黄色午夜| 欧美精品综合 | 第四色影音先锋 | 欧美亚洲综合网 | 蜜臀视频一区二区 | 婷婷久久综合网 | 2021毛片 | 国产又爽又黄的视频 | 很黄的性视频 | 午夜一二区 | 黄色三级免费网站 | 91高跟黑色丝袜呻吟在线观看 | 四虎精品成人免费网站 | 2022av在线| 韩国午夜av| 九色自拍 | 亚洲国产大片 | 成人免费入口 | avav亚洲| 少妇资源 | 日韩人妻精品无码一区二区三区 | 国产高潮又爽又无遮挡又免费 | 日韩另类 | 在线黄网| 97在线视频人妻无码 | 男女做爰猛烈高潮描写 | 久久综合一本 | 久久精品亚洲一区 | 国产麻豆成人 | 91精品国产亚洲 | www九色| 国产chinese| 国产一区二区视频免费 | 91瑟瑟| 精品一区在线播放 | 精品在线小视频 | 九九视频在线播放 | 欧美亚洲91 | 欧美日本一二三区 | 国产毛片a级 | 日韩插插插| 亚洲一区二区影院 | 国产精品污视频 | 精品国产青草久久久久96 | 日韩视频一区二区三区在线播放免费观看 | 亚洲大片在线观看 | 久久久久性色av无码一区二区 | 久久综合亚洲色hezyo国产 | 免费亚洲网站 | 国内精品久久久久久久影视简单 | 中文在线日韩 | 伊人狼人影院 | 日韩美女爱爱 | 日韩成人黄色 | 欧美视频一区二区三区在线观看 | 瑟瑟视频免费看 | 免费成人美女女电影 | 国产女主播自拍 | 亚洲射射射 | 在线视频第一页 | 色欲国产精品一区二区 | 国产欧美一区二区精品性色 | 午夜成年人 | 一本久久综合亚洲鲁鲁五月天 | 成人影| 古装做爰无遮挡三级聊斋艳谭 | 久久在线播放 | 狠狠躁夜夜躁人人爽天天高潮 | 一区二区久久精品66国产精品 | √天堂中文官网8在线 | 久久国产精品国语对白 | 美女交配 | 肉丝袜脚交视频一区二区 | 中文字幕无码乱人伦 | 九九热在线视频 | 亚洲欧美中文日韩在线 | 久艹在线观看视频 | 在线播放色 | www.日韩在线观看 | 波多野结衣影院 | av电影一区二区三区 | 欧美视频在线观看一区二区 | 巨乳女教师的诱惑 | 青草99 | 奇米第四色777| 日本美女视频网站 | 日韩欧美在线免费观看 | 色婷婷热久久 | 欧美影院在线 | 91大片在线观看 | 人妻少妇被猛烈进入中文字幕 | 国产性精品 | 波多野吉衣伦理片 | 懂色av蜜臀av粉嫩av分享吧最新章节 |