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

Python灰度變換中的分段線性函數(shù)專(zhuān)項(xiàng)分析實(shí)現(xiàn)

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

1. 分段線性函數(shù)介紹

分段線性函數(shù)同樣是點(diǎn)運(yùn)算,基于像素的圖像增強(qiáng),也就是對(duì)比度拉伸。

大概的原理就是:將不同灰度區(qū)間的灰度值經(jīng)過(guò)不同的映射函數(shù)映射到另一個(gè)灰度區(qū)間的過(guò)程。

因?yàn)槭褂米儞Q函數(shù)的個(gè)數(shù)是三個(gè),所以我們經(jīng)常使用的分段線性函數(shù)是三段線性變換函數(shù)

對(duì)應(yīng)的數(shù)學(xué)公式為

  • a = 1 ,b = 0 時(shí),恒等函數(shù),不改變圖像的灰度值
  • a >1, 對(duì)比度增強(qiáng)
  • 0 < a < 1 , 對(duì)比度減弱
  • b 控制圖像的亮度,b > 0 圖像變亮,b < 0 圖像變?nèi)?/li>

對(duì)比度:定義為圖像中最高和最低灰度級(jí)之間的灰度差

但沒(méi)有真正意義上的計(jì)算公式,只是大概意思的表示

如果一副圖像灰度的動(dòng)態(tài)范圍具有高的動(dòng)態(tài)范圍,那我們就認(rèn)為這幅圖像的對(duì)比度高

2. 代碼實(shí)現(xiàn)

import numpy as np
import cv2
def linear_transform(img):
    height,width = img.shape[:2]
    r1,s1 = 80,10
    r2,s2 = 140,200
    k1 = s1 / r1   # 第一段斜率
    k2 = (s2 - s1) / (r2 - r1) # 第二段斜率
    k3 = (255 - s2) / (255 - r2)  # 第三段斜率
    img_copy = np.zeros_like(img)
    for i in range(height):
        for j in range(width):
            if img[i,j] < r1 :
                img_copy[i,j] = k1 * img[i,j]
            elif r1 <= img[i,j] <= r2:
                img_copy[i,j] = k2 * (img[i,j] - r1) + s1
            else:
                img_copy[i,j] = k3 * (img[i,j] - r2) + s2
    return img_copy
img = cv2.imread('./img.png',0)
ret = linear_transform(img)
cv2.imshow('img',np.hstack((img,ret)))
cv2.waitKey()
cv2.destroyAllWindows()

處理結(jié)果為

這里代碼的實(shí)現(xiàn)較為簡(jiǎn)單,不再贅述,單純的取圖像的像素點(diǎn)然后進(jìn)行映射而已。

3. other

說(shuō)說(shuō)中間兩個(gè)分段點(diǎn)怎么取值的問(wèn)題

因?yàn)橥ㄟ^(guò)觀察原圖發(fā)現(xiàn),圖像整體灰度值偏低,所以我們將原圖(0-80)的灰度值壓縮到(0-10)范圍內(nèi),再將中間的(80-140) 灰度值放大,就可以將中間的對(duì)比度拉大

書(shū)上的分段點(diǎn)取得是(r1,s1) = (r.min , 0) , (r2,s2) = (r.max , 255)

只需要將上面的代碼改成這樣,就可以得到下面的圖片

但是這種方法可能不是很泛化,因?yàn)橛^察這幅圖片的直方圖可以發(fā)現(xiàn),原圖片的低灰度值和高灰度值都是沒(méi)有的。而往往大多數(shù)的圖片動(dòng)態(tài)范圍都是(0,255)。如果按照書(shū)上的進(jìn)行,就會(huì)變成

(r1,s1) = (0, 0) , (r2,s2) = (255 , 255),就變成y = x的恒等變換了

最后,因?yàn)橛^察直方圖,可以知道,在80-90 左右 的左側(cè)像素值均為背景信息,我們可以進(jìn)行壓縮對(duì)比度。而在 90-130 中間灰度占比多,為前景信息,我們可以進(jìn)行對(duì)比度拉伸

上面的分段點(diǎn)就是觀察直方圖得出來(lái)得值

  • 所以分段線性函數(shù)的分段點(diǎn)可以通過(guò)直方圖簡(jiǎn)單得到
  • 分段線性變換可以不是連續(xù)的

到此這篇關(guān)于Python灰度變換中的分段線性函數(shù)專(zhuān)項(xiàng)分析實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python分段線性函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何基于python實(shí)現(xiàn)畫(huà)不同品種的櫻花樹(shù)

    如何基于python實(shí)現(xiàn)畫(huà)不同品種的櫻花樹(shù)

    這篇文章主要介紹了如何基于python實(shí)現(xiàn)畫(huà)不同品種的櫻花樹(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python安裝第三方庫(kù)的3種方法

    Python安裝第三方庫(kù)的3種方法

    這篇文章主要介紹了Python安裝第三方庫(kù)的3種方法,本文講解了通過(guò)setuptools來(lái)安裝python模塊、通過(guò)pip來(lái)安裝python模塊、直接從網(wǎng)上下載下可執(zhí)行文件來(lái)安裝三種方法,需要的朋友可以參考下
    2015-06-06
  • Python雙端隊(duì)列實(shí)現(xiàn)回文檢測(cè)

    Python雙端隊(duì)列實(shí)現(xiàn)回文檢測(cè)

    雙端隊(duì)列 Deque 是一種有次序的數(shù)據(jù)集,跟隊(duì)列相似,其兩端可以稱(chēng)作"首" 和 "尾"端。這篇文章將通過(guò)雙端隊(duì)列實(shí)現(xiàn)回文檢測(cè),感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • python爬蟲(chóng)xpath模塊簡(jiǎn)介示例代碼

    python爬蟲(chóng)xpath模塊簡(jiǎn)介示例代碼

    xpath是最常用且最便捷高效的一種解析方式,通用型強(qiáng),其不僅可以用于python語(yǔ)言中,還可以用于其他語(yǔ)言中,數(shù)據(jù)解析建議首先xpath,這篇文章主要介紹了python爬蟲(chóng)xpath模塊簡(jiǎn)介,需要的朋友可以參考下
    2023-02-02
  • 解決Pycharm輸入法無(wú)法切換中英文問(wèn)題

    解決Pycharm輸入法無(wú)法切換中英文問(wèn)題

    這篇文章主要介紹了解決Pycharm輸入法無(wú)法切換中英文問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 解決pycharm修改代碼后第一次運(yùn)行不生效的問(wèn)題

    解決pycharm修改代碼后第一次運(yùn)行不生效的問(wèn)題

    這篇文章主要介紹了解決pycharm修改代碼后第一次運(yùn)行不生效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • flask-socketio實(shí)現(xiàn)前后端實(shí)時(shí)通信的功能的示例

    flask-socketio實(shí)現(xiàn)前后端實(shí)時(shí)通信的功能的示例

    本文主要介紹了flask-socketio實(shí)現(xiàn)前后端實(shí)時(shí)通信的功能的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Pytest初學(xué)者快速上手高效Python測(cè)試指南

    Pytest初學(xué)者快速上手高效Python測(cè)試指南

    這篇文章主要為大家介紹了Pytest初學(xué)者快速上手的高效Python測(cè)試指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 淺析Python中signal包的使用

    淺析Python中signal包的使用

    這篇文章主要介紹了Python中signal包的使用,主要在Linux系統(tǒng)下對(duì)進(jìn)程信號(hào)進(jìn)行相關(guān)操作,需要的朋友可以參考下
    2015-11-11
  • Python用for循環(huán)實(shí)現(xiàn)九九乘法表

    Python用for循環(huán)實(shí)現(xiàn)九九乘法表

    本文通過(guò)實(shí)例代碼給大家介紹了Python用for循環(huán)實(shí)現(xiàn)九九乘法表的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05

最新評(píng)論

邢台县| 白山市| 海盐县| 宁蒗| 临洮县| 苏尼特左旗| 新泰市| 文安县| 望都县| 台北市| 八宿县| 桑植县| 桦南县| 尉氏县| 余干县| 德保县| 衡山县| 香港| 文安县| 红河县| 和静县| 文化| 盐山县| 张家界市| 肇源县| 县级市| 葫芦岛市| 若羌县| 丰宁| 温宿县| 囊谦县| 江源县| 鹤庆县| 巴中市| 凌海市| 宣威市| 四子王旗| 阿克陶县| 青冈县| 诸城市| 叙永县|