在介紹CLAHE算法之前必須要先提一下直方圖均衡化,直方圖均衡化算法是一種常見的圖像增強算法,可以讓像素的亮度分配的更加均勻從而獲得一個比較好的觀察效果。
如下圖就是經過直方圖均衡化后的效果圖。
import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread(r'E:python_image_simpythonProjectsimimgFig0459(a)(orig_chest_xray).tif', 0) img = cv2.resize(img, (500, 500)) equ=cv2.equalizeHist(img) res = np.hstack((img, equ)) # stacking images side-by-side cv2.imshow('img', res) cv2.waitKey() cv2.destroyAllWindows()
左邊是原圖,右邊是經過直方圖均衡化后圖,可以看到肋骨什么的可以更加清晰的顯示了出來,能夠更好的觀察到肋骨等位置的細節。
但是美中不足的是總感覺有的地方太亮了,干擾到了我們的觀察。
這是因為直方圖均衡化有著兩個問題:
直方圖均衡化是針對全局進行處理的,所以當局部出現過亮或者過暗的時候就會影響效果。
直方圖均衡化會增強噪聲。
再來看看經過CLAHE算法后的效果。
import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread(r'E:python_image_simpythonProjectsimimgreast_digital_Xray.tif', 0) img = cv2.resize(img, (500, 500)) equ = cv2.equalizeHist(img) cla = cv2.createCLAHE(2, (5, 5)) # cv2.ahe cla = cla.apply(img) res = np.hstack((img, equ, cla)) # res = np.hstack((img, equ)) # stacking images side-by-side cv2.imshow('img', res) cv2.waitKey() cv2.destroyAllWindows()
最左側為原圖,中間為直方圖均衡化后的結果,最右側為CLAHE算法的效果。
從視覺效果上來看,CLAHE算法的效果最為明顯。
CLAHE算法針對上面兩個問題,提出了相應的解決方案:
CLAHE會將圖像分成一個一個的小塊,這樣在局部進行直方圖均衡化。
針對背景噪聲增強的問題,CLAHE算法應用了限制對比度的方法。
CLAHE算法的實現步驟分為以下三個部分:
對圖像進行分塊
對每個塊進行直方圖均衡化和限制對比度
使用插值的方法得到最后增強的圖片
審核編輯:劉清
-
FPGA
+關注
關注
1630文章
21798瀏覽量
606022 -
圖像處理
+關注
關注
27文章
1300瀏覽量
56894
原文標題:FPGA圖像處理--CLAHE算法(一)
文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論