最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1. 介紹

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

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

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

2. 實(shí)現(xiàn)方法

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

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

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

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

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

注:

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

3. code

這里用第二種÷的方法實(shí)現(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. 比特平面重建圖像

如果還原圖像的話,我們?cè)佥敵鰣D像的時(shí)候,就不要映射到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灰度變換中位圖切割分析實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python位圖切割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)簡(jiǎn)單的名片管理系統(tǒng)

    python實(shí)現(xiàn)簡(jiǎn)單的名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)名片管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解

    Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解

    這篇文章主要介紹了Python中使用pypdf2合并、分割、加密pdf文件的代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Python中的 dir() 函數(shù)示例詳解

    Python中的 dir() 函數(shù)示例詳解

    dir()函數(shù)是Python 中一個(gè)非常有用的工具,可以用于查找對(duì)象的所有屬性和方法,如獲取當(dāng)前作用域的變量和方法、查找模塊中的導(dǎo)出內(nèi)容、動(dòng)態(tài)查找對(duì)象屬性等,通過(guò)本文的介紹和示例代碼,大家可以更全面地了解 dir() 函數(shù)的用法和注意事項(xiàng),需要的朋友參考下吧
    2022-03-03
  • Python中的單例模式與反射機(jī)制詳解

    Python中的單例模式與反射機(jī)制詳解

    這篇文章主要為大家介紹了Python中的單例模式與反射機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • 用python 批量操作redis數(shù)據(jù)庫(kù)

    用python 批量操作redis數(shù)據(jù)庫(kù)

    這篇文章主要介紹了如何用python 批量操作redis數(shù)據(jù)庫(kù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python+unittest+requests+excel實(shí)現(xiàn)接口自動(dòng)化測(cè)試框架

    Python+unittest+requests+excel實(shí)現(xiàn)接口自動(dòng)化測(cè)試框架

    這篇文章主要介紹了Python+unittest+requests+excel實(shí)現(xiàn)接口自動(dòng)化測(cè)試框架,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 關(guān)于Python 內(nèi)置庫(kù) itertools

    關(guān)于Python 內(nèi)置庫(kù) itertools

    今天得這篇文章就來(lái)給大家介紹一下Python的系統(tǒng)庫(kù)itertools的 相關(guān)資料,需要的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • python中的二維列表實(shí)例詳解

    python中的二維列表實(shí)例詳解

    這篇文章主要介紹了python中的二維列表實(shí)例詳解,文中給大家介紹了python 二維列表按列取元素的方法,需要的朋友可以參考下
    2018-06-06
  • 徹徹底底地理解Python中的編碼問(wèn)題

    徹徹底底地理解Python中的編碼問(wèn)題

    Python處理文本的功能非常強(qiáng)大,但是如果是初學(xué)者,沒(méi)有搞清楚python中的編碼機(jī)制,也經(jīng)常會(huì)遇到亂碼或者decode error。本文的目的是簡(jiǎn)明扼要地說(shuō)明python的編碼機(jī)制,并給出一些建議,需要的朋友可以參考下
    2018-10-10
  • Python中在for循環(huán)中嵌套使用if和else語(yǔ)句的技巧

    Python中在for循環(huán)中嵌套使用if和else語(yǔ)句的技巧

    Python的語(yǔ)法糖非常強(qiáng)大,比如Python中在for循環(huán)中嵌套使用if和else語(yǔ)句的技巧便十分給力,下面我們就舉幾個(gè)例子來(lái)看詳細(xì)的用法:
    2016-06-06

最新評(píng)論

高州市| 青冈县| 贵港市| 肇庆市| 万源市| 沙河市| 车致| 芜湖县| 芦山县| 池州市| 淮南市| 乌鲁木齐县| 长白| 彰化县| 永兴县| 石台县| 皋兰县| 富源县| 韶关市| 屏东市| 兴义市| 赤峰市| 阳朔县| 丽水市| 高雄市| 宜章县| 和静县| 余姚市| 观塘区| 二连浩特市| 临夏市| 福建省| 隆回县| 南投市| 宿松县| 洪湖市| 沐川县| 哈尔滨市| 荔波县| 黔西县| 报价|