日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像处理——图像变换

發(fā)布時間:2023/12/15 编程问答 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像处理——图像变换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
圖像處理——圖像變換

操作環(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=1b0a=1且b≠0,圖像整體的灰度值上移或者下移,也就是圖像整體變亮或者變暗,不會改變圖像的對比度。
  • a<0b=0a<0且b=0,圖像的亮區(qū)域變暗,暗區(qū)域變亮
  • a=1b=0a=1且b=0,恒定變換,不變
  • a=?1b=255a=?1且b=255,圖像反轉(zhuǎn)。

? 在進行圖像增強時,上述的線性變換函數(shù)用的較多的就是圖像反轉(zhuǎn)了,根據(jù)上面的參數(shù),圖像反轉(zhuǎn)的變換函數(shù)為:s=255?ss=255?s。圖像反轉(zhuǎn)得到的是圖像的負(fù)片,能夠有效的增強在圖像暗區(qū)域的白色或者灰色細(xì)節(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像中低灰度細(xì)節(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

三、圖像的直方圖均衡

? 圖像的直方圖——橫坐標(biāo)為圖像灰度值,縱坐標(biāo)為在某灰度級下的像素個數(shù)。

? 直方圖均衡技術(shù)將原始圖像的灰度直方圖從比較集中的某個灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布, 由于其算法簡單, 無需借助外來因素的參數(shù)設(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)就是將圖像上的像素點灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑白效果的過程。該過程將256個亮度等級的灰度圖像通過適當(dāng)?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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。