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

Python實(shí)現(xiàn)圖像增強(qiáng)

 更新時(shí)間:2022年08月05日 09:59:28   作者:lph-China  
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)圖像增強(qiáng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Python實(shí)現(xiàn)圖像增強(qiáng)的具體代碼,供大家參考,具體內(nèi)容如下

題目描述:對(duì)于下面這幅圖像(圖 1),請(qǐng)問(wèn)可以通過(guò)那些圖像增強(qiáng)的手段,達(dá)到改善視覺(jué)效果的目的?請(qǐng)顯示處理結(jié)果,并附簡(jiǎn)要處理流程說(shuō)明。

圖 1 原圖 

常用的圖像增強(qiáng)方法有以下幾種:

1.提高對(duì)比度

采用了線性函數(shù)對(duì)圖像的灰度值進(jìn)行變換。

2.Gamma校正

采用了非線性函數(shù)(指數(shù)函數(shù))對(duì)圖像的灰度值進(jìn)行變換。

3.直方圖均衡化

將原始圖像的直方圖通過(guò)積分概率密度函數(shù)轉(zhuǎn)化為概率密度為1(理想情況)的圖像,從而達(dá)到提高對(duì)比度的作用。直方圖均衡化的實(shí)質(zhì)也是一種特定區(qū)域的展寬,但是會(huì)導(dǎo)致整個(gè)圖像向亮的區(qū)域變換。當(dāng)原始圖像給定時(shí),對(duì)應(yīng)的直方圖均衡化的效果也相應(yīng)的確定了。

4.直方圖規(guī)定化

針對(duì)直方圖均衡化的存在的一些問(wèn)題,將原始圖像的直方圖轉(zhuǎn)化為規(guī)定的直方圖的形式。一般目標(biāo)圖像的直方圖的確定需要參考原始圖像的直方圖,并利用多高斯函數(shù)得到。

5. 中值、均值濾波器

均值濾波方法:對(duì)待處理的當(dāng)前像素,選擇一個(gè)模板,該模板為其鄰近的若干個(gè)像素組成,用模板的均值來(lái)替代原像素的值的方法。

中值濾波方法:對(duì)待處理的當(dāng)前像素,選擇一個(gè)模板,該模板為其鄰近的若干個(gè)像素組成,對(duì)模板的像素由小到大進(jìn)行排序,再用模板的中值來(lái)替代原像素的值的方法。

從圖像中我們可以看出,該圖片帶有很多椒鹽噪聲,并且圖像有些暗,于是我們選擇中值濾波方法對(duì)圖片進(jìn)行處理(中值濾波對(duì)椒鹽噪聲具有較好效果),并提高對(duì)比度和亮度。

處理流程:

第一步:采用中值濾波方法對(duì)圖像進(jìn)行處理,處理后,結(jié)果如圖2所示:

圖2 中值濾波

第二步:Gamma校正,處理后,結(jié)果如圖3所示:

圖3 Gamma校正

第三步:提升對(duì)比度,亮度,處理后,結(jié)果如圖4所示:

圖4 對(duì)比度、亮度提升

最后輸出對(duì)比圖,如圖5所示:

圖5 效果對(duì)比圖 

Python代碼:

#author:lph
#funtion:image enhance
?
import cv2
import numpy as np
from tkinter import *
from skimage import filters,exposure
import matplotlib.pyplot as plt
from skimage.morphology import disk
from matplotlib.font_manager import FontProperties
#讀入圖片
im = cv2.imread('./image/image.png',0)
im_copy = cv2.imread('./image/image.png',0)
#如果圖片為空,返回錯(cuò)誤信息,并終止程序
if im is None:
? ? print("圖片打開失?。?)
? ? exit()
#中值濾波去噪
medStep = 3 # 設(shè)置為3*3的濾波器
def m_filter(x, y, step):
? ? """中值濾波函數(shù)"""
? ? sum_s=[] # 定義空數(shù)組
? ? for k in range(-int(step/2),int(step/2)+1):
? ? ? ? for m in range(-int(step/2),int(step/2)+1):
? ? ? ? ? ? sum_s.append(im[x+k][y+m]) # 把模塊的像素添加到空數(shù)組
? ? sum_s.sort() # 對(duì)模板的像素由小到大進(jìn)行排序
? ? return sum_s[(int(step*step/2)+1)]
for i in range(int(medStep/2),im.shape[0]-int(medStep/2)):
? ? for j in range(int(medStep/2),im.shape[1]-int(medStep/2)):
? ? ? ? im_copy[i][j] = m_filter(i, j, medStep) # 用模板的中值來(lái)替代原像素的值
cv2.imshow("Median",im_copy)
#Gamma校正
img3 = exposure.adjust_gamma(im_copy,1.05)
cv2.imshow("Gamma", img3)
#對(duì)比度、亮度增強(qiáng)
def Contrast_and_Brightness(alpha,beta,img):
? ? """使用公式f(x)=α.g(x)+β"""
? ? #α調(diào)節(jié)對(duì)比度,β調(diào)節(jié)亮度
? ? blank = np.zeros(img.shape,img.dtype)#創(chuàng)建圖片類型的零矩陣
? ? dst = cv2.addWeighted(img,alpha,blank,1-alpha,beta)#圖像混合加權(quán)
? ? return dst
img4 = Contrast_and_Brightness(1.1,30,img3)
cv2.imshow("Contrast", img4)
#創(chuàng)建一個(gè)窗口
plt.figure('對(duì)比圖',figsize=(7,5))
# 中文字體設(shè)置
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) #新宋體
#顯示原圖
plt.subplot(121) #子圖1
#顯示原圖,設(shè)置標(biāo)題和字體
plt.imshow(im,plt.cm.gray), plt.title('處理前圖片', fontproperties = font)
?
#顯示處理過(guò)的圖像
plt.subplot(122) #子圖2
#顯示處理后的圖,設(shè)置標(biāo)題和字體
plt.imshow(img4,plt.cm.gray), plt.title('處理后圖片', fontproperties = font)
plt.show()
# 銷毀所有窗口
cv2.destroyAllWindows()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    PyMysql是Python中用于連接MySQL數(shù)據(jù)庫(kù)的一個(gè)第三方庫(kù),本文主要介紹了Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • python爬蟲之基金信息存儲(chǔ)

    python爬蟲之基金信息存儲(chǔ)

    這篇文章主要介紹了python爬蟲之基金信息存儲(chǔ),前面已經(jīng)講了很多次要進(jìn)行數(shù)據(jù)存儲(chǔ),終于在上一篇中完成了數(shù)據(jù)庫(kù)的設(shè),在這篇文章我們就來(lái)完成數(shù)據(jù)存儲(chǔ)操作部分的介紹,需要的朋友可以參考一下
    2022-05-05
  • Python開發(fā)如何在ubuntu 15.10 上配置vim

    Python開發(fā)如何在ubuntu 15.10 上配置vim

    這篇文章主要介紹了Python開發(fā)如何在ubuntu 15.10 上配置vim 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 使用Python的xlwings操作Excel的屬性和方法

    使用Python的xlwings操作Excel的屬性和方法

    這篇文章主要介紹了使用Python的xlwings操作Excel的屬性和方法,xlwings?是?Python?操作?Excel?的庫(kù)之一,主要作為兩門語(yǔ)言的交互工具,是python?操作excel比較成熟、杰出的庫(kù),調(diào)用簡(jiǎn)單方便,而且功能強(qiáng)大,需要的朋友可以參考下
    2023-07-07
  • Python中裝飾器的一個(gè)妙用

    Python中裝飾器的一個(gè)妙用

    這篇文章主要介紹了Python中裝飾器的一個(gè)妙用,本文是在寫一個(gè)爬蟲程序時(shí)總結(jié)而來(lái),實(shí)現(xiàn)定義一個(gè)裝飾器,如果之前取到數(shù)據(jù),就直接取cache的數(shù)據(jù),如果之前沒(méi)有取到,那么就從網(wǎng)站拉取,并且存入cache中,需要的朋友可以參考下
    2015-02-02
  • 使用Python的Twisted框架編寫非阻塞程序的代碼示例

    使用Python的Twisted框架編寫非阻塞程序的代碼示例

    Twisted是基于異步模式的開發(fā)框架,因而利用Twisted進(jìn)行非阻塞編程自然也是必會(huì)的用法,下面我們就來(lái)一起看一下使用Python的Twisted框架編寫非阻塞程序的代碼示例:
    2016-05-05
  • Pytorch中如何調(diào)用forward()函數(shù)

    Pytorch中如何調(diào)用forward()函數(shù)

    這篇文章主要介紹了Pytorch中如何調(diào)用forward()函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python學(xué)習(xí)之基礎(chǔ)語(yǔ)法介紹

    Python學(xué)習(xí)之基礎(chǔ)語(yǔ)法介紹

    大家好,本篇文章主要講的是Python學(xué)習(xí)之基礎(chǔ)語(yǔ)法介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • python掌握字符串只需這一篇就夠了

    python掌握字符串只需這一篇就夠了

    字符串是 Python 中最常用的數(shù)據(jù)類型。我們可以使用引號(hào)('或")來(lái)創(chuàng)建字符串。創(chuàng)建字符串很簡(jiǎn)單,只要為變量分配一個(gè)值即可
    2021-11-11
  • OpenCV實(shí)戰(zhàn)之AI照片背景替換

    OpenCV實(shí)戰(zhàn)之AI照片背景替換

    不少人在生活中都有摳人像圖換背景的需求。本文將為大家介紹一個(gè)更快的方法,即利用OpenCV實(shí)現(xiàn)AI照片背景替換,感興趣的小伙伴可以試一試
    2022-01-01

最新評(píng)論

高青县| 夏邑县| 阿拉善左旗| 会东县| 望奎县| 永德县| 苍山县| 祁东县| 广元市| 临漳县| 博客| 南华县| 巴塘县| 军事| 九江市| 江孜县| 舒兰市| 北京市| 息烽县| 且末县| 石台县| 彭水| 广南县| 富蕴县| 保亭| 龙口市| 秦皇岛市| 顺义区| 寿阳县| 克东县| 华池县| 当雄县| 北川| 临澧县| 乌拉特前旗| 井冈山市| 东方市| 博罗县| 渭南市| 海伦市| 新田县|