图像处理——图像变换
操作環(huán)境:windows10系統(tǒng),spyder3?編輯器,python3語言。
定義:通過對圖像進行各種便函,逐點改變源圖像像素灰度值的相關(guān)方法。
目的:?改善畫質(zhì)。
主要內(nèi)容:圖像的線性變換與非線性變換,主要為圖像反轉(zhuǎn),對數(shù)變換等,圖像的直方圖均衡,圖像的二值化處理。
一、圖像反轉(zhuǎn)
? 令r為變換前的灰度,s為變換后的灰度,則線性變換的函數(shù):s=a?r+bs=a?r+b;其中,a為直線的斜率,b為在y軸的截距。選擇不同的a,b值會有不同的效果:
- a>1a>1,增加圖像的對比度
- a<1a<1,減小圖像的對比度
- a=1且b≠0a=1且b≠0,圖像整體的灰度值上移或者下移,也就是圖像整體變亮或者變暗,不會改變圖像的對比度。
- a<0且b=0a<0且b=0,圖像的亮區(qū)域變暗,暗區(qū)域變亮
- a=1且b=0a=1且b=0,恒定變換,不變
- a=?1且b=255a=?1且b=255,圖像反轉(zhuǎn)。
? 在進行圖像增強時,上述的線性變換函數(shù)用的較多的就是圖像反轉(zhuǎn)了,根據(jù)上面的參數(shù),圖像反轉(zhuǎn)的變換函數(shù)為:s=255?ss=255?s。圖像反轉(zhuǎn)得到的是圖像的負片,能夠有效的增強在圖像暗區(qū)域的白色或者灰色細節(jié)。
以下是“圖像反轉(zhuǎn)”在python3下的實現(xiàn)。(所有代碼直接用需要有能識別中文編碼的定義即# -*- coding: utf-8 -*-)
1 import matplotlib.pyplot as plt 2 import numpy as np 3 from skimage.util import random_noise 4 from PIL import Image 5 6 img = plt.imread('F:/python編程/自己的博客園代碼/圖像變換/example_gray.jpg') 7 fig = plt.figure(figsize = (8.0,6.0)) 8 ax1 = fig.add_subplot(1,2,1) 9 ## show the original picture 10 ax1.imshow(img) 11 plt.title('original_picture') 12 13 ## 圖像反轉(zhuǎn) 14 img_reversal = 255- img 15 ax2 = fig.add_subplot(1,2,2) 16 ax2.imshow(img_reversal) 17 plt.title('reversal_picture') View Code?
二、圖像的對數(shù)變換
對數(shù)變換的通用公式是:
?
? 其中,c是一個常數(shù),底數(shù)為,實際計算的時候,需要用換底公式。+1的原因是log的定義域需要>0才有意義。對數(shù)變換,將源圖像中范圍較窄的低灰度值映射到范圍較寬的灰度區(qū)間,同時將范圍較寬的高灰度值區(qū)間映射為較窄的灰度區(qū)間,從而擴展了暗像素的值,壓縮了高灰度的值,能夠?qū)D像中低灰度細節(jié)進行增強。
以下是圖像對數(shù)變換在python3下的實現(xiàn)。
1 #### 圖像的灰度變換 2 import matplotlib.pyplot as plt 3 import numpy as np 4 from skimage.util import random_noise 5 from PIL import Image 6 7 img = plt.imread('F:/python編程/自己的博客園代碼/圖像變換/example_gray.jpg') 8 fig = plt.figure(figsize = (8.0,6.0)) 9 ax1 = fig.add_subplot(1,2,1) 10 ## show the original picture 11 ax1.imshow(img) 12 plt.title('original_picture') 13 14 ## 圖像的log變換 15 img_log = np.log(1 + np.abs(img/255)) #### (0,1)的輸入 16 ax3 = fig.add_subplot(1,2,2) 17 ## show the original picture 18 ax3.imshow(img_log) 19 plt.title('log_picture') View Code
三、圖像的直方圖均衡
? 圖像的直方圖——橫坐標為圖像灰度值,縱坐標為在某灰度級下的像素個數(shù)。
? 直方圖均衡技術(shù)將原始圖像的灰度直方圖從比較集中的某個灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布, 由于其算法簡單, 無需借助外來因素的參數(shù)設置,可以自成系統(tǒng)的運行, 有效地增強圖像對比度, 是一種常用的圖像增強方法。
以下是圖像的直方圖均衡在python3下的實現(xiàn)。
1 #### 直方圖均衡 2 from skimage import data,exposure 3 import matplotlib.pyplot as plt 4 5 img = plt.imread('F:/python編程/自己的博客園代碼/圖像變換/example_gray.jpg') 6 plt.figure("hist",figsize=(8,8)) 7 8 arr=img.flatten() 9 plt.subplot(221) 10 plt.imshow(img,plt.cm.gray) #原始圖像 11 plt.subplot(222) 12 plt.hist(arr, bins=256, normed=1,edgecolor='None',facecolor='red') #原始圖像直方圖 13 14 img1=exposure.equalize_hist(img) 15 arr1=img1.flatten() 16 plt.subplot(223) 17 plt.imshow(img1,plt.cm.gray) #均衡化圖像 18 plt.subplot(224) 19 plt.hist(arr1, bins=256, normed=1,edgecolor='None',facecolor='red') #均衡化直方圖 View Code
四、圖像的二值化處理
? 圖像二值化( Image Binarization)就是將圖像上的像素點的灰度值設置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑白效果的過程。該過程將256個亮度等級的灰度圖像通過適當?shù)?strong>閾值選取而獲得仍然可以反映圖像整體和局部特征的二值化圖像。
以下是圖像的二值化在python3下的實現(xiàn)。
1 #### 圖像的灰度變換 2 import matplotlib.pyplot as plt 3 import numpy as np 4 from skimage.util import random_noise 5 from PIL import Image 6 7 img = plt.imread('F:/python編程/自己的博客園代碼/圖像變換/example_gray.jpg') 8 fig = plt.figure(figsize = (8.0,6.0)) 9 ax1 = fig.add_subplot(1,2,1) 10 ## show the original picture 11 ax1.imshow(img) 12 plt.title('original_picture') 13 14 ## 二值化 15 img.flags.writeable = True ### 必須加這句不然會報錯,因為圖像開始只是只讀模式 16 threshold = 128 17 H,W,X = img.shape 18 for i in range(X-1): 19 for j in range(H-1): 20 for k in range(W-1): 21 if img[j,k,i] > threshold: 22 img[j,k,i] = 255 23 else: 24 img[j,k,i] = 0 25 img_twovalues = img 26 ax3 = fig.add_subplot(1,2,2) 27 ## show the original picture 28 ax3.imshow(img_twovalues) 29 plt.title('twovalues_picture') View Code
本文參考博文:
https://blog.csdn.net/xuehuitanwan123/article/details/82018051
https://www.cnblogs.com/wangguchangqing/p/6983680.html
https://www.jb51.net/article/139446.htm
? ? ??
posted on 2019-03-08 20:54 E-Dreamer 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/E-Dreamer-Blogs/p/10484609.html
總結(jié)
以上是生活随笔為你收集整理的图像处理——图像变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCL发布NXTPAPER 11平板电脑
- 下一篇: 一加11概念机正式发布!这是全球首款主动