欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python圖像處理之模糊圖像判斷

 更新時間:2022年12月05日 11:03:40   作者:夏天是冰紅茶  
這篇文章主要為大家詳細介紹了Python圖像處理中的模糊圖像判斷的實現,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下

上期回顧

上一次的圖像清晰度評價沒有成功,主要的原因是那幾張圖像清晰度評價函數都實際都采用了梯度求解,不同的場景灰度的明暗不同,梯度可能會很大,無法得到一個界定值來判定圖像的清晰度,所以這次我打算只對動態(tài)模糊的圖像進行判斷,是否是動態(tài)模糊圖像。

圖像處理:圖像清晰度評價

采用Laplace算子的原因

根據我之前的一個調研,在清晰度評價函數當中,我決定采用Laplace算子,因為它所得到的梯度值較小,容易獲得一個模糊判斷區(qū)間,而其他的幾種所獲得的梯度值較大,相應的誤差范圍也將更高,而且在opencv當中就集成了Laplace算子,很輕松就能調用,并得到一個很好的結果。

實現的效果

本次將會使用一組模糊圖像和一組標準圖像獲得模糊判定區(qū)間(a,b),我們知道梯度值越大,圖像越清晰,所以當我們進行測試一張圖像時,它所返回的梯度值小于a,則可以說明它是一個模糊的圖像,當返回的梯度值大于b時,則可以說明它是一個清晰的圖像,而當返回的梯度值落在了a與b之間,我們也將其放在模糊圖像當中。

圖片素材

我自己采用的是手機拍攝的照片,分辨率都是1280*960,請注意圖像的尺寸與場景會影響返回的梯度值,但我們通常采集的數據都是由相機拍攝,尺寸相同,工業(yè)上采用道路裂縫檢測的場景基本類似,所以有研究的意義。

代碼的展示與講解

import cv2
import os
 
def getPhotopath(paths):
    imgfile = []
    file_list=os.listdir(paths)
    for i in file_list:
        newph=os.path.join(paths,i)
        imgfile.append(newph)
    return imgfile
 
def getImgVar(image):
    imggray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    imageVar = cv2.Laplacian(imggray, cv2.CV_64F).var()
    return imageVar
 
def getTest(imgfile):
    c = []
    for i in imgfile:
        # print(i)
        img=cv2.imread(i)
        image=getImgVar(img)
        # print(image)
        c.append(float(f"{image:.3f}"))
    if 'test' in imgfile[0]:   #對測試集數據進行反轉
        c.sort(reverse=True)
    else:
        c.sort()
    return c
 
def getThr():
    a=getTest(imgfile1)
    b=getTest(imgfile2)
    thr=(a[0],b[0])
    # print(thr)
    return thr
 
path1="./test"     #測試的數據集文件夾位置
path2="./Standards"  #標準圖的數據文件夾位置
#獲取文件下的名稱
imgfile1=getPhotopath(path1)
imgfile2=getPhotopath(path2)
 
#獲得閾值
minThr,maxThr=getThr()
print(minThr,maxThr)
 
def vagueJudge(image):
    img = cv2.imread(image)
    imgVar = getImgVar(img)
    if imgVar>maxThr:
        cv2.putText(img, f"Not Vague{imgVar:.2f}", (12, 70), cv2.FONT_HERSHEY_PLAIN, 3,
                    (255, 0, 0), 3)
    else:
        cv2.putText(img, f"Vague{imgVar:.2f}", (12, 70), cv2.FONT_HERSHEY_PLAIN, 3,
                    (255, 0, 0), 3)
    cv2.imshow("img",img)
    k=cv2.waitKey(0) & 0xFF
image="./Standards/001.jpg"   #需要進行測試的圖片
vagueJudge(image)
getPhotopath函數:獲得文件夾下各個圖片路徑,輸入模糊圖片的文件夾,輸入標準圖像的文件夾,存入列表當中。
getImgVar函數:返回圖像梯度值。
getTest函數:對每個圖像進行了梯度值計算后,存入列表當中,對模糊圖像的進行列表序列翻轉。
def getThr函數:獲得模糊判定區(qū)間(a,b)。
vagueJudge函數:對新輸入的圖像進行模糊判定,只要小于b,就判定為模糊。

效果展示

由于我不想在拍攝新的圖片,這里就采用./test文件和./Standards文件的圖片。

控制臺打印的模糊判定區(qū)間:

4.327 65.401

image="./Standards/001.jpg" 

image="./test/01.jpg"

項目資源

GitHub鏈接

到此這篇關于Python圖像處理之模糊圖像判斷的文章就介紹到這了,更多相關Python模糊圖像判斷內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解python中@的用法

    詳解python中@的用法

    這篇文章主要介紹了python中@的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • python中關于range()函數反向遍歷的幾種表達

    python中關于range()函數反向遍歷的幾種表達

    這篇文章主要介紹了python中關于range()函數反向遍歷的幾種表達,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python中import學習備忘筆記

    python中import學習備忘筆記

    python中的import語句是用來導入模塊的,在python模塊庫中有著大量的模塊可供使用,要想使用這些文件需要用import語句把指定模塊導入到當前程序中。下面這篇文章主要給大家介紹了python中import學習的相關資料,需要的朋友可以參考借鑒。
    2017-01-01
  • python中l(wèi)ist,ndarray,Tensor間的轉換小結

    python中l(wèi)ist,ndarray,Tensor間的轉換小結

    數據類型轉換是常見的功能,本文主要介紹了python中l(wèi)ist,ndarray,Tensor間的轉換小結,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • Python信息處理庫Talon自動抽取簽名信息

    Python信息處理庫Talon自動抽取簽名信息

    這篇文章主要為大家介紹了Python信息處理庫Talon自動抽取簽名信息實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 一文帶你學會如何利用Python實現一個三維繪圖系統

    一文帶你學會如何利用Python實現一個三維繪圖系統

    tkinter是Python標準庫中自帶的GUI工具,使用十分方便,所以本文旨在帶大家學會如何將matplotlib嵌入到tkinter中并繪制三維繪圖系統,感興趣的可以了解下
    2023-09-09
  • Python環(huán)境Pillow( PIL )圖像處理工具使用解析

    Python環(huán)境Pillow( PIL )圖像處理工具使用解析

    這篇文章主要介紹了Python環(huán)境Pillow( PIL )圖像處理工具使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Python 獲取ftp服務器文件時間的方法

    Python 獲取ftp服務器文件時間的方法

    今天小編就為大家分享一篇Python 獲取ftp服務器文件時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • linux下python抓屏實現方法

    linux下python抓屏實現方法

    這篇文章主要介紹了linux下python抓屏實現方法,涉及Python操作屏幕截取的相關技巧,需要的朋友可以參考下
    2015-05-05
  • 淺談python中的多態(tài)

    淺談python中的多態(tài)

    在面向對象程序設計中,除了封裝和繼承特性外,多態(tài)也是一個非常重要的特性。讓具有不同功能的函數可以使用相同的函數名,這樣就可以用一個函數名調用不同內容(功能)的函數
    2021-06-06

最新評論