国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從圖像統(tǒng)計特征看圖像內(nèi)在-均值,方差,對比度,熵

這篇具有很好參考價值的文章主要介紹了從圖像統(tǒng)計特征看圖像內(nèi)在-均值,方差,對比度,熵。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

圖像統(tǒng)計特征

用于度量圖像所具有的信息量,它反映了圖像中紋理的紊亂度或復(fù)雜程度。熵值越大,說明紋理越復(fù)雜;熵值越小,說明紋理越平滑。

均值

灰度均值是對區(qū)域內(nèi)亮度的一個度量,可以用來反應(yīng)圖像的明暗程度。

方差

方差就是數(shù)據(jù)的分散程度(偏離均值)。

對比度

反映了圖像的清晰度和紋理溝紋深淺的程度。紋理溝紋越深,其對比度越大,視覺效果越清晰;反之,對比度小,則溝紋淺,效果模糊。

公式

圖像方差,圖像處理,python,opencv,目標檢測

測試圖片-從均值、方差做對比

圖像方差,圖像處理,python,opencv,目標檢測
圖像方差,圖像處理,python,opencv,目標檢測
對于第一組六張圖片,圖片越輛均值越大,但方差不會改變(同一張圖片只改變亮度)
對于第二組圖片,對比度不做調(diào)節(jié),只調(diào)節(jié)亮度的情況下,偏離均值的離散度會變大

圖像方差,圖像處理,python,opencv,目標檢測

測試圖片-從對比度出發(fā)

對比度越大 視覺效果越清晰;紋理越深對比度越大

圖像方差,圖像處理,python,opencv,目標檢測
圖像方差,圖像處理,python,opencv,目標檢測

測試圖片-從熵出發(fā)

熵值越大,說明紋理越復(fù)雜;熵值越小,說明紋理越平滑。
圖像方差,圖像處理,python,opencv,目標檢測
圖像方差,圖像處理,python,opencv,目標檢測文章來源地址http://www.zghlxwxcb.cn/news/detail-593822.html

img_1 = cv2.imread('office_1.jpg')
img_2 = cv2.imread('office_2.jpg')
img_3 = cv2.imread('office_3.jpg')
img_4 = cv2.imread('office_4.jpg')
img_5 = cv2.imread('office_5.jpg')
img_6 = cv2.imread('office_6.jpg')
img_7 = cv2.imread('dalishi.jpg')
img_8 = cv2.imread('wall.jpg')
img_9 = cv2.imread('muwen.jpg')
img_10 = cv2.imread('shuiniwen.jpg')
img_11 = cv2.imread('400x400_zhi_wenli.jpg')
img_12 = cv2.imread('400x400_zhi_zhezhouwenli.jpg')
imgs = [img_1,img_2,img_3,img_4,img_5,img_6]
titles = ['office_1.jpg','office_2.jpg','office_3.jpg','office_4.jpg','office_5.jpg','office_6.jpg']
for m in range(6):
    plt.subplot(2,3,m + 1)
    plt.imshow(imgs[m])
    plt.title(titles[m])
def rgb2gray(img):
    h = img.shape[0]
    w = img.shape[1]
    gray = np.uint8(np.zeros((h,w)))
    for i in range(h):
        for j in range(w):
            gray[i,j] = 0.144 * img[i,j,0] + 0.587 * img[i,j,1] + 0.299 * img[i,j,2]  # BGR
    return gray
def average(img):
    img1 = rgb2gray(img)
    height,width = img1.shape
    size = img1.size
    ave = 0
    for i in range(height):
        for j in range(width):
            ave += img1[i][j] / size
    return ave
def contrast(img):
    img1 = rgb2gray(img)
    m,n = img1.shape
    # 圖片矩陣向外擴展一個像素
    img1_ext=cv2.copyMakeBorder(img1,1,1,1,1,cv2.BORDER_REPLICATE)  # 用邊界顏色填充
    height,width = img1_ext.shape
    b = 0.0
    for i in range(1,height - 1):
        for j in range(1,width - 1):
            b += (int((img1_ext[i,j]) - int(img1_ext[i,j + 1])) ** 2 + (
                    int(img1_ext[i,j]) - int(img1_ext[i,j - 1])) ** 2 + (
                          int(img1_ext[i,j]) - int(img1_ext[i + 1,j])) ** 2 + (
                          int(img1_ext[i,j]) - int(img1_ext[i - 1,j])) ** 2)
    cg = b / (4 * (m - 2) * (n - 2) + 3 * (2 * (m - 2) + 2 * (n - 2)) + 2 * 4)  #
    return cg
def variance(img):
    img1 = rgb2gray(img)
    height,width = img1.shape
    var = 0
    size = img1.size
    average = 0
    for i in range(height):
        for j in range(width):
            average += img1[i][j] / size
    for i in range(height):
        for j in range(width):
            var += img1[i,j] * (i - average) ** 2
    return var
def Contrast_and_Brightness(alpha,bete,img):  
    blank = np.zeros(img.shape,img.dtype)
    dst = cv2.addWeighted(img,alpha,blank,1 - alpha,bete)
    return dst
def dec2bin(p):
    floatbinstr = ""
    if p == 0:
        return floatbinstr
    for kk in range(len(str(p)) - 2):
        p *= 2
        if p > 1:
            floatbinstr += "1"
            p = p - int(p)
        else:
            floatbinstr += "0"
        if p == 0:
            break
        return str(floatbinstr)
def total_entropy(img):
    n = []
    P = []
    lenavg = []
    avg_sum = 0
    grey_lvl = 0
    k = 0
    res = 0
    # test = [[5,4,3,2,1]]
    weight = img.shape[0]
    height = img.shape[1]
    total = weight * height
    for i in range(256):
        n.append(0)
    for i in range(weight):
        for j in range(height):
            grey_lvl = img[i][j]
            n[grey_lvl] = float(n[grey_lvl] + 1)
            k = float(k + 1)
    for i in range(256):
        P.append(0)
    P = n
    for i in range(len(n)):
        P[i] = (n[i] / k)
    for i in range(256):
        lenavg.append(0)
    lenavg = P
    for i in range(len(n)):
        if P[i] == 0.0:
            continue
        lenavg[i] = lenavg[i] * len(dec2bin(lenavg[i]))
        avg_sum = lenavg[i] + avg_sum
    for i in range(len(n)):
        if (P[i] == 0):
            res = res
        else:
            res = float(res - P[i] * (math.log(P[i]) / math.log(2.0)))
    return res
if __name__ == '__main__':
    if input(keyboard.wait('A')):
        for i in range(6):
            ave_1 = average(imgs[i])
            ave_1 = Decimal(ave_1).quantize(Decimal("0.000"))
            print("average_office" + "_" + "123456"[i],ave_1)
            with open('E:\\untitled12\\image_practice\\entropy.txt','a',encoding='utf-8') as f:
                f.write('{:^30}\n'.format(str(ave_1)))
                f.close()
        plt.show()
    if input(keyboard.wait('V')):
        for i in range(6):
            var_1 = variance(img_1)
            var_1 = Decimal(var_1).quantize(Decimal("0.000"))
            print("variance_office" + "_" + "123456"[i],var_1)
        img_contrast = Contrast_and_Brightness(2.0,0,img_1)
        var_orign = variance(img_1)
        var_con = variance(img_contrast)
        print("原圖:       ",var_orign)
        print("原圖調(diào)節(jié)對比:",var_con)
        plt.subplot(1,2,1),plt.imshow(img_1),plt.title('img_1')   plt.subplot(1,2,2),plt.imshow(img_contrast),plt.title('img_contrast')
    plt.show()
    if input(keyboard.wait('C')):
        con_1 = contrast(img_1)
        plt.subplot(2,2,1),plt.imshow(img_1),plt.title('bangong')

        img_GAUSS = cv2.GaussianBlur(img_1,(9,9),0)
        con_2 = contrast(img_GAUSS)
        plt.subplot(2,2,2),plt.imshow(img_GAUSS),plt.title('bangong_GUSS')
        con_3 = contrast(img_9)
        plt.subplot(2,2,3),plt.imshow(img_9),plt.title('mu_wen')
        con_4 = contrast(img_10)
        plt.subplot(2,2,4),plt.imshow(img_10),plt.title('shui_ni_wen')

        con_1 = Decimal(con_1).quantize(Decimal("0.000"))
        con_2 = Decimal(con_2).quantize(Decimal("0.000"))
        print("contrast_office" + "_oringel",con_1)
        print("contrast_office" + "_GAUSS  ",con_2)

        con_3 = Decimal(con_3).quantize(Decimal("0.000"))
        con_4 = Decimal(con_4).quantize(Decimal("0.000"))
        print("木紋  ",con_3)
        print("水泥紋",con_4)
    plt.show()

    if input(keyboard.wait('E')):
        img_grey = cv2.imread('dalishi.jpg',cv2.IMREAD_GRAYSCALE)
        img_grey1 = cv2.imread('wall.jpg',cv2.IMREAD_GRAYSCALE)
        img_grey2 = cv2.imread('muwen.jpg',cv2.IMREAD_GRAYSCALE)

        img_wenli = cv2.imread('400x400_zhi_wenli.jpg',cv2.IMREAD_GRAYSCALE)
        img_wenli1 = cv2.imread('400x400_zhi_zhezhouwenli.jpg',cv2.IMREAD_GRAYSCALE)

        ent_dalishi = total_entropy(img_grey)
        plt.subplot(1,3,1),plt.imshow(img_7)
        ent_wall = total_entropy(img_grey1)
        plt.subplot(1,3,2),plt.imshow(img_8)
        ent_muwen = total_entropy(img_grey2)
        plt.subplot(1,3,3),plt.imshow(img_9)

        ent_wenli = total_entropy(img_wenli)
        plt.subplot(1,2,1),plt.imshow(img_11),plt.title('junyun_weli')
        ent_wenli1 = total_entropy(img_wenli1)
        plt.subplot(1,2,2),plt.imshow(img_12),plt.title('not_junrun_wen')

        print("entropy_dalishi",ent_dalishi)
        print("entropy_wall   ",ent_wall)
        print("entrop_muwen   ",ent_muwen)

        print("E_junrun_wenli:        ",ent_wenli)
        print("E_NOT_junrun_wenli1:   ",ent_wenli1)
    plt.show()

到了這里,關(guān)于從圖像統(tǒng)計特征看圖像內(nèi)在-均值,方差,對比度,熵的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • OpenCV改變圖像的對比度和亮度

    OpenCV改變圖像的對比度和亮度

    在本教程中,您將學(xué)習(xí)如何: 訪問像素值 用零初始化矩陣 了解 cv::saturate_cast 的作用以及它為什么有用 獲取有關(guān)像素轉(zhuǎn)換的一些很酷的信息 在實際示例中提高圖像的亮度 注意 下面的解釋屬于Richard Szeliski的《計算機視覺:算法和應(yīng)用》一書 圖像處理 一般圖像處理算子是

    2024年02月21日
    瀏覽(27)
  • OpenCV增加圖像的亮度及對比度

    OpenCV增加圖像的亮度及對比度

    案例:輸出一張原圖,增加該圖片的亮度及對比度 基本概念: 亮度:RGB的像素值范圍是0~255,我們稱從0——255隨著像素值的增加圖像會越來月亮,反之會越來越暗。所以我們可以通過對圖像像素加減來改變圖像的亮度。 對比度:其反應(yīng)的是圖像中各像素的差異(層次感、落

    2024年02月12日
    瀏覽(24)
  • 數(shù)字圖像處理:亮度對比度-幾何變換-噪聲處理

    數(shù)字圖像處理:亮度對比度-幾何變換-噪聲處理

    亮度與對比度轉(zhuǎn)換 圖像變換可分為以下兩種: 點算子:基于像素變換,在這一類圖像變換中,僅僅根據(jù)輸入像素值計算相應(yīng)的輸出像素值 鄰域算子:基于圖像區(qū)域進行變換 兩種常用的點算子是用常數(shù)對點的像素值進行乘法或加法運算,可以表示為: g ( i , j ) = α ? f ( i ,

    2024年02月10日
    瀏覽(31)
  • OpenCvSharp學(xué)習(xí)筆記6--改變圖像的對比度和亮度

    OpenCvSharp學(xué)習(xí)筆記6--改變圖像的對比度和亮度

    訪問像素值mat.AtT(y,x) 用0初始化矩陣Mat.Zeros 飽和操作SaturateCast.ToByte g(x)=αf(x)+β 用α(0)和β一般稱作增益(gain)和偏置(bias),分別控制對比度和亮度 把f(x)看成源圖像像素,把g(x)看成輸出圖像像素 g(i,j)=α?f(i,j)+β 其中,i和j表示像素位于 第i行 和 第j列(左上角為第0行、第0列) M

    2024年02月03日
    瀏覽(32)
  • Python OpenCV調(diào)整圖像亮度對比度及RGB色彩

    python通過opencv庫調(diào)整圖像的步驟: 1. 讀取圖像 直接通過cv2庫讀取圖像,可以讀取jpg, png等格式 2. 調(diào)整圖像亮度及對比度 OpenCV提供 convertScaleAbs 函數(shù)來調(diào)整對比度和亮度,可以直接調(diào)用該函數(shù) 如果只調(diào)整RGB顏色通道,則可以忽略此步驟 3.?分離出圖片的B,R,G顏色通道 使用

    2024年02月03日
    瀏覽(28)
  • Python圖像處理:1.插值、頻域變換與對比度增強

    Python圖像處理:1.插值、頻域變換與對比度增強

    7.圖像的插值 (1)原理介紹 下面對比三種插值方法,分別是最近鄰插值法、雙線性插值法、卷積插值法,三種方法的前提和特點、優(yōu)缺點、適用場景如下: 最近鄰插值(Nearest Neighbor Interpolation) : 前提與特點 :這是最簡單的插值方法,不考慮相鄰像素的影響,只取最近的像

    2024年03月13日
    瀏覽(85)
  • C#使用OpenCv(OpenCVSharp)圖像處理實例:亮度、對比度、灰度

    本文實例演示C#語言中如何使用OpenCv(OpenCVSharp)對圖像進行亮度、對比度、灰度處理。 目錄 亮度和對比度原理 灰度 實例 圖像亮度通俗理解便是圖像的明暗程度,數(shù)字圖像?f(x,y) = i(x,y) r(x, y)?,如果灰度值在[0,255]之間,則?f?值越接近0亮度越低,f?值越接近255亮度越

    2024年02月13日
    瀏覽(27)
  • 【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對比度,并在GUI窗口中實時顯示調(diào)整后的圖像以及其直方圖。...

    【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對比度,并在GUI窗口中實時顯示調(diào)整后的圖像以及其直方圖。...

    這段代碼是使用C++和OpenCV庫編寫的圖像處理程序,其主要功能是 調(diào)整圖像的亮度和對比度,并在GUI窗口中實時顯示調(diào)整后的圖像以及其直方圖。 用戶可以通過界面上的滑動條來動態(tài)地調(diào)整亮度和對比度參數(shù)從而觀察到圖像即時的變化效果。程序首先讀取并顯示一個灰度圖像

    2024年04月10日
    瀏覽(29)
  • Opencv C++圖像處理:亮度+對比度+飽和度+高光+暖色調(diào)+陰影+漫畫效果+白平衡+浮雕+羽化+銳化+顆粒感
  • 視頻增強技術(shù)-對比度增強

    視頻增強技術(shù)-對比度增強

    ????????在圖像處理中,由于獲取的圖像質(zhì)量不好,需要通過對比度增強來提升圖片質(zhì)量,主要解決的是由于圖像灰度級范圍較小造成的對比度較低的問題,作用是使圖像的灰度級范圍放大,從而讓圖像更加清晰。主要對比度增強方法包括線性變換、直方圖正規(guī)化、伽馬變

    2024年02月10日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包