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

Python灰度變換中位圖切割分析實現(xiàn)

 更新時間:2022年10月18日 17:05:24   作者:Henry_zs  
灰度變換是指根據(jù)某種目標(biāo)條件按一定變換關(guān)系逐點改變源圖像中每個像素灰度值的方法。目的是改善畫質(zhì),使圖像顯示效果更加清晰。圖像的灰度變換處理是圖像增強處理技術(shù)中的一種非常基礎(chǔ)、直接的空間域圖像處理方法,也是圖像數(shù)字化軟件和圖像顯示軟件的一個重要組成部分

1. 介紹

圖像的像素值是由比特組成的。例如一副256級灰度圖像中,圖像是由8 bit組成。

與之前對比度拉伸的區(qū)別是,之前我們主要強調(diào)在某一范圍的灰度值作為我們能感興趣的目標(biāo)將其變亮或者變暗。而位圖切割主要強調(diào)每個bit對圖像的貢獻(xiàn),通過方法將不同位的灰度值值取出來還原成圖像。

如圖所示,一副8 bit圖像,我們可以將圖像分割成8個,將每個圖像對應(yīng)的比特位取出構(gòu)建成一副新的圖像

2. 實現(xiàn)方法

例如圖像某一點的像素值為100,對應(yīng)的二進(jìn)制為0110 0100

我們的目標(biāo)很簡單,就是將第1位的0取出來(這里不要把100看成一個數(shù),將他想象成一幅圖像的所有點,我們要把圖像像素對應(yīng)二進(jìn)制的第一位全部取出,組成一副新的圖像)以此類推...

最后為了防止取出的灰度值過暗,我們將他映射到最大值255

這里提供兩種方法實現(xiàn):

  • 將圖像的二進(jìn)制和對應(yīng)的 8bit 相與(0000 0000),例如取第0個比特平面的話圖像就和(0000 0001)與。所以結(jié)果只能是0000 000X (X取決于圖像的最低位),如果X = 1的話,我們認(rèn)為這個點的像素在 0bit平面有值,將它映射為255;否則為0
  • 圖像像素除以 2^n (n代表第n個比特平面,n從0開始,為了滿足編程下標(biāo)從0開始計數(shù)),如果商的整數(shù)部分為1的話,說明這個點在n比特平面有值,映射為255;否則為0

注:

  • 這里映射為255為了突出對應(yīng)比特平面的亮度,否則就算再最高的比特平面,最大值也只有128灰度值(因為最高的是第7為,2^7 = 128)
  • 如果利用第一種與的方法,但是最后不要拉伸成255,只是把與的結(jié)果作為新的圖像輸出。那么只需要將8副圖像全部加起來就可以還原圖像

3. code

這里用第二種÷的方法實現(xiàn)

如果用第一種與的方法的話,只需要將中間的代碼段替換成后面的就行,結(jié)果是一樣的

import cv2
import numpy as np
gray = cv2.imread('./img.jpg',0)
img = cv2.resize(gray,None,fx = 0.5,fy = 0.5,interpolation=cv2.INTER_AREA)  #縮小圖像
group = []   # 存放每一層的圖像
for n in range(8):
    dst = np.zeros_like(img)
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            ret = img[i][j] // pow(2,n)       #ret = img[i][j] & pow(2,n)
            if (ret % 2) ==1:                 # if (ret ==pow(2,n)):
                dst[i][j] = 255
            else:
                dst[i][j] = 0
    group.append(dst)
cv2.imshow('0-3',np.hstack((i for i in group[:4])))
cv2.imshow('4-7',np.hstack((i for i in group[4:])))
cv2.waitKey()
cv2.destroyAllWindows()

輸入圖像:

輸出結(jié)果:

4. 比特平面重建圖像

如果還原圖像的話,我們再輸出圖像的時候,就不要映射到255,之間將圖像與比特平面相與的結(jié)果輸出即可

import cv2
import numpy as np
gray = cv2.imread('./img.jpg',0)
img = cv2.resize(gray,None,fx = 0.5,fy = 0.5,interpolation=cv2.INTER_AREA)  #縮小圖像
group = []   # 存放每一層的圖像
for n in range(8):
    dst = np.zeros_like(img)
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            ret = img[i][j] & pow(2,n)
            dst[i][j] = ret   # 將與的結(jié)果作為圖像
    group.append(dst)
cv2.imshow('0-3',np.hstack((i for i in group[:4])))
cv2.imshow('4-7',np.hstack((i for i in group[4:])))
a = np.zeros_like(img)   # 還原
for i in group:
    a += i
cv2.imshow('img',a)
cv2.waitKey()
cv2.destroyAllWindows()

輸出比特平面:

所以圖像相加為:

到此這篇關(guān)于Python灰度變換中位圖切割分析實現(xiàn)的文章就介紹到這了,更多相關(guān)Python位圖切割內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程

    在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程

    這篇文章主要介紹了在Python中如何利用Into包整潔地進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)格式的任意兩個格式之間高效地遷移數(shù)據(jù),需要的朋友可以參考下
    2015-03-03
  • Python中sorted()用法案例代碼

    Python中sorted()用法案例代碼

    sorted() 作為?Python?內(nèi)置函數(shù)之一,其功能是對序列(列表、元組、字典、集合、還包括字符串)進(jìn)行排序,這篇文章主要介紹了Python中sorted()用法,需要的朋友可以參考下
    2023-02-02
  • python高并發(fā)異步服務(wù)器核心庫forkcore使用方法

    python高并發(fā)異步服務(wù)器核心庫forkcore使用方法

    這篇文章主要介紹了python高并發(fā)異步服務(wù)器核心庫forkcore的使用方法,大家參考使用吧
    2013-11-11
  • Python構(gòu)建一個文檔掃描器的實現(xiàn)

    Python構(gòu)建一個文檔掃描器的實現(xiàn)

    本文主要介紹了Python構(gòu)建一個文檔掃描器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型

    Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型

    這篇文章主要介紹了Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python讀取Json字典寫入Excel表格的方法

    Python讀取Json字典寫入Excel表格的方法

    這篇文章主要為大家詳細(xì)介紹了Python讀取Json字典寫入Excel表格的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python配置同花順全數(shù)據(jù)接口教程詳解

    Python配置同花順全數(shù)據(jù)接口教程詳解

    這篇文章主要為大家詳細(xì)介紹了Python配置同花順全數(shù)據(jù)接口的教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python+Turtle制作海龜迷宮小游戲

    Python+Turtle制作海龜迷宮小游戲

    這篇文章主要是帶大家寫一個利用Turtle庫制作的一款海龜闖關(guān)的三大迷宮,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,感興趣的可以了解一下
    2022-04-04
  • Pyhton自動化測試持續(xù)集成和Jenkins

    Pyhton自動化測試持續(xù)集成和Jenkins

    這篇文章介紹了Pyhton自動化測試持續(xù)集成和Jenkins,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python安裝virtualenv虛擬環(huán)境步驟圖文詳解

    python安裝virtualenv虛擬環(huán)境步驟圖文詳解

    這篇文章主要介紹了python安裝virtualenv虛擬環(huán)境步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09

最新評論