使用python-opencv在圖像中查找最亮點(diǎn)

Python愕掏,OpenCV找出圖像中的最亮點(diǎn)

這篇博客將向您展示如何使用Python和OpenCV查找圖像中的最亮點(diǎn)度秘,以及應(yīng)用單行預(yù)處理代碼——高斯模糊以改善效果。

1. 原理

查找Python和OpenCV找到圖像的最亮點(diǎn)饵撑,主要利用 **cv2.minMaxLoc **方法剑梳。

使用cv2.minMaxLoc 找到的實(shí)際上不是一個(gè)區(qū)域——它只是整個(gè)圖像中最亮的單個(gè)像素。

**cv2.minMaxLoc找到的是整個(gè)圖像中單個(gè)最亮的像素滑潘。 **因此使用極易受到噪音的干擾垢乙。在正常情況下不會(huì)出現(xiàn)明亮像素的區(qū)域(在這種情況下,是視神經(jīng)中樞以外的區(qū)域)语卤,單個(gè)明亮像素會(huì)大大降低檢測(cè)的結(jié)果追逮。

相反,最好檢查圖像的區(qū)域而不是單個(gè)像素粹舵。因?yàn)闄z查區(qū)域時(shí)可以讓所有區(qū)域平均平衡钮孵,而不易受到噪音影響。

2. 優(yōu)化

那么眼滤,如何在不顯式檢查圖像的每個(gè)區(qū)域的情況下模仿這種“區(qū)域”效果呢巴席?

  • 查找圖像中最亮點(diǎn)的敏感方法是使用cv2.minMaxLoc,稱其敏感的原因是該方法極易受噪音干擾(其他區(qū)域明亮的像素)诅需,可以通過預(yù)處理步驟應(yīng)用 **高斯模糊 **解決漾唉。

  • 應(yīng)用高斯模糊可以對(duì)給定半徑內(nèi)的像素進(jìn)行平均,從而丟棄單個(gè)明亮像素赵刑。使魯棒性方法正常工作的一個(gè)重要方面是正確設(shè)置半徑尺寸场刑。

  • 合理的設(shè)置高斯模糊半徑值非常的重要般此,正確的設(shè)置半徑尺寸能很好的保證該方法的魯棒性;

  • 如果設(shè)置半徑尺寸太小恤煞,將無法找到更大屎勘,更亮的圖像區(qū)域。但是如果設(shè)置尺寸過大居扒,那么將檢測(cè)到太大的區(qū)域,而錯(cuò)過了較小的區(qū)域,從而導(dǎo)致結(jié)果不及預(yù)期腻异。

3. 效果圖

原始效果 VS 高斯優(yōu)化后效果圖

在這里插入圖片描述

有噪音干擾時(shí)影斑,原始效果 VS 高斯優(yōu)化后圖

原始效果左圖 cv2.minMaxLoc 找到的只是最亮的像素點(diǎn)残邀,所以很容易受高頻噪音影響空免。優(yōu)化是應(yīng)用高斯模糊娇豫;


在這里插入圖片描述

原始效果 VS 高斯優(yōu)化后圖

在這里插入圖片描述

4. 源碼

# USAGE
# python bright.py --image retina.png --radius 41
# python bright.py --image images/retina-noise.png --radius 41

# 導(dǎo)入必要的包
import numpy as np # 數(shù)值處理
import argparse # 命令行參數(shù)
import cv2 #綁定openCV

# 構(gòu)建命令行參數(shù)并解析
# --image 照片路徑
#  --radius 整數(shù),應(yīng)用于圖像的高斯模糊的半徑,必須是技術(shù)
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help = "path to the image file")
ap.add_argument("-r", "--radius", type = int,
                help = "radius of Gaussian blur; must be odd")
args = vars(ap.parse_args())

# 加載圖像,復(fù)制圖像并轉(zhuǎn)換為灰度圖
image = cv2.imread(args["image"])
orig = image.copy()
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 查找圖像中最亮點(diǎn)的敏感方法是使用cv2.minMaxLoc吮旅,稱其敏感的原因是該方法極易受噪音干擾庇勃,可以通過預(yù)處理步驟應(yīng)用高斯模糊解決檬嘀。
# 尋找最小、最大像素強(qiáng)度所在的(x,y)
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
# 在最大像素上繪制空心藍(lán)色圓圈
cv2.circle(image, maxLoc, 5, (255, 0, 0), 2)

# 展示該方法的結(jié)果
cv2.imshow("Naive", image)

# 使用cv2.minMaxLoc匪凉,如果不進(jìn)行任何預(yù)處理枪眉,可能會(huì)非常容易受到噪音干擾。
# 相反再层,最好先對(duì)圖像應(yīng)用高斯模糊以去除高頻噪聲贸铜。這樣,即使像素值非常大(同樣由于噪聲)也將被其鄰居平均聂受。
# 在圖像上應(yīng)用高斯模糊消除高頻噪聲蒿秦,然后尋找最亮的像素
# 高斯模糊的半徑取決于實(shí)際應(yīng)用和要解決的問題;
gray = cv2.GaussianBlur(gray, (args["radius"], args["radius"]), 0)
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
image = orig.copy()
cv2.circle(image, maxLoc, args["radius"], (255, 0, 0), 2)

# 展示效果顯著提升后的方法結(jié)果
cv2.imshow("Robust", image)
cv2.waitKey(0)

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛋济,一起剝皮案震驚了整個(gè)濱河市棍鳖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碗旅,老刑警劉巖渡处,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異祟辟,居然都是意外死亡医瘫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門旧困,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醇份,“玉大人稼锅,你說我怎么就攤上這事×欧祝” “怎么了矩距?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長怖竭。 經(jīng)常有香客問我锥债,道長,這世上最難降的妖魔是什么侵状? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任赞弥,我火速辦了婚禮,結(jié)果婚禮上趣兄,老公的妹妹穿的比我還像新娘。我一直安慰自己悼嫉,他們只是感情好艇潭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著戏蔑,像睡著了一般蹋凝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上总棵,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天鳍寂,我揣著相機(jī)與錄音,去河邊找鬼情龄。 笑死迄汛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骤视。 我是一名探鬼主播鞍爱,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼专酗!你這毒婦竟也來了睹逃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤祷肯,失蹤者是張志新(化名)和其女友劉穎沉填,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佑笋,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翼闹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了允青。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橄碾。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卵沉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出法牲,到底是詐尸還是另有隱情史汗,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布拒垃,位于F島的核電站停撞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏悼瓮。R本人自食惡果不足惜戈毒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望横堡。 院中可真熱鬧埋市,春花似錦、人聲如沸命贴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胸蛛。三九已至污茵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間葬项,已是汗流浹背泞当。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留民珍,地道東北人襟士。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像穷缤,于是被迫代替她去往敵國和親敌蜂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容