国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

數(shù)字圖像增強(qiáng)

亮度與對(duì)比度轉(zhuǎn)換

圖像變換可分為以下兩種:

  • 點(diǎn)算子:基于像素變換,在這一類圖像變換中,僅僅根據(jù)輸入像素值計(jì)算相應(yīng)的輸出像素值
  • 鄰域算子:基于圖像區(qū)域進(jìn)行變換

兩種常用的點(diǎn)算子是用常數(shù)對(duì)點(diǎn)的像素值進(jìn)行乘法或加法運(yùn)算,可以表示為:

g ( i , j ) = α ? f ( i , j ) + β g(i, j) = \alpha * f(i, j) + \beta g(i,j)=α?f(i,j)+β

其中,圖像中點(diǎn)的位置為 ( i , j ) (i, j) (i,j),α值代表增益,β值代表偏置。對(duì)圖像進(jìn)行亮度和對(duì)比度的變換就是一種點(diǎn)算子,這兩個(gè)參數(shù)分別可以用來控制對(duì)比度與亮度??梢酝ㄟ^調(diào)節(jié)這兩個(gè)參數(shù)的值,來對(duì)圖片進(jìn)行對(duì)比度或亮度的調(diào)節(jié)。即將原圖像中的每一個(gè)像素點(diǎn)都加上一個(gè)偏置常數(shù),則可以使圖片的亮度變大。類似地,將原圖片中的像素點(diǎn)乘上一個(gè)增益系數(shù),可以調(diào)整圖片的對(duì)比度。

注意

圖片像素點(diǎn)的像素值取值范圍是[0,255],一定不要讓其溢出,可以使用np.clip進(jìn)行截?cái)?/p>

示例圖像:

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

import cv2
import numpy as np


#  方法1: 基于addWeighted()函數(shù)實(shí)現(xiàn)
def convert_img1(img, alpha, beta):
    blank = np.zeros(img.shape, img.dtype)
    return cv2.addWeighted(img, alpha, blank, 0, beta)


# 方法2: 通過for循環(huán)手動(dòng)實(shí)現(xiàn)
def convert_img2(img, alpha, beta):
    rows, cols, chs = img.shape
    new_img = np.zeros(img.shape, img.dtype)
    for i in range(rows):
        for j in range(cols):
            for k in range(chs):
                new_img[i, j, k] = np.clip(alpha * img[i, j, k] + beta, 0, 255)
    return new_img

img = cv2.imread('woman.png')
cv2.imwrite('convert_img1.jpg', convert_img1(img, 2.2, 50))
cv2.imwrite('convert_img2.jpg', convert_img2(img, 2.2, 50))

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

在上述代碼中,函數(shù)convert_img1()中的addWeighted()函數(shù)的參數(shù)列表分別為:[img1,alpha,img2,beta,gamma],代表將兩個(gè)圖片進(jìn)行如下計(jì)算:

n e w _ i m g = a l p h a ? i m g 1 + b e t a ? i m g 2 + g a m m a new\_img = alpha * img1 + beta * img2 + gamma new_img=alpha?img1+beta?img2+gamma

而函數(shù)convert_img2()實(shí)現(xiàn)的過程,就是通過for循環(huán)修改原始圖片的像素值,與函數(shù)convert_img1()的過程是一樣的,只不過convert_img1()函數(shù)調(diào)用addWeighted()函數(shù)的img2參數(shù)中圖片的像素值都是0而已。

幾何變換

圖像的幾何變換是指對(duì)圖片中的圖像像素點(diǎn)的位置進(jìn)行變換的一種操作,它將一幅圖像中的坐標(biāo)位置映射到新的坐標(biāo)位置,也就是改變像素點(diǎn)的空間位置,同時(shí)也要估算新空間位置上的像素值。

圖像裁剪

在圖像數(shù)據(jù)的矩陣中裁剪出部分矩陣作為新的圖像數(shù)據(jù),從而實(shí)現(xiàn)對(duì)圖像的裁剪。

import cv2
import numpy as np

# 圖像裁剪
img = cv2.imread('woman.png')
print(img.shape)

new_img = img[20:300, 20:400]
cv2.imwrite('crop_img.jpg', new_img)

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

上述代碼實(shí)現(xiàn)的過程是將原始的圖像從第(20,20)個(gè)像素點(diǎn)的位置,裁剪到(300,400)處,裁剪的形狀是矩形。

尺寸變換

修改圖像的尺寸也就是修改圖像的大小,OpenCV的resize()函數(shù)可以實(shí)現(xiàn)這樣的功能。對(duì)圖像進(jìn)行尺寸變換時(shí),必然會(huì)丟失或者增加一些像素點(diǎn)。在縮放時(shí)建議使用區(qū)域插值cv2.INTER_AREA,可以避免出現(xiàn)波紋;在放大時(shí)建議使用三次樣條插值cv2.INTER_CUBIC,但是其計(jì)算速度相對(duì)較慢。也可以使用線性插值cv2.INTER_LINEAR,默認(rèn)情況下所有改變圖像尺寸大小的操作使用的插值法都是線性插值。

# 圖像縮放
small_resize_img = cv2.resize(img, (200, 200), interpolation=cv2.INTER_AREA)
cv2.imwrite('small_resize.jpg', small_resize_img)

small_resize_img2 = cv2.resize(img, None, fx=0.5, fy=0.6, interpolation=cv2.INTER_AREA)  # 圖像的寬對(duì)應(yīng)的是列數(shù),高對(duì)應(yīng)的是行數(shù)
cv2.imwrite('small_resize2.jpg', small_resize_img2)

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理
數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

圖像旋轉(zhuǎn)

旋轉(zhuǎn)通過getRotationMatrix2D()函數(shù)來實(shí)現(xiàn)。

# 圖像旋轉(zhuǎn)
img = cv2.imread('woman.png')
rows, cols, _ = img.shape
rotated_mat = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)  # 第一個(gè)參數(shù)是旋轉(zhuǎn)中心,第2個(gè)為旋轉(zhuǎn)角度,第3個(gè)為旋轉(zhuǎn)后的縮放因子
rotated_img = cv2.warpAffine(img, rotated_mat, dsize=(cols, rows))
cv2.imwrite('rot45.jpg', rotated_img)

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

噪聲處理

對(duì)訓(xùn)練數(shù)據(jù)添加適量噪聲,可以使訓(xùn)練后的模型更加魯棒,對(duì)模型的性能提升有一定幫助。對(duì)噪聲進(jìn)行消除,可以增加圖像的質(zhì)量。

添加噪聲

對(duì)圖像添加兩種常用噪聲的方法:

  • 椒鹽噪聲
  • 高斯噪聲
import cv2
import random
import numpy as np

# 添加椒鹽噪聲
def salt_and_pepper_noise(img, percentage):
    rows, cols, chs = img.shape
    num = int(percentage * rows * cols)
    for i in range(num):
        x = random.randint(0, rows-1)
        y = random.randint(0, cols-1)
        z = random.randint(0, chs-1)
        if random.randint(0, 1) == 0:
            img[x, y, z] = 0  # 黑色噪點(diǎn)
        else:
            img[x, y, z] = 255  # 白色噪點(diǎn)
    return img

# 添加高斯隨機(jī)噪聲
def gaussian_noise(img, mu, sigma, delta):
    rows, cols, chs = img.shape
    for i in range(rows):
        for j in range(cols):
            for k in range(chs):
                # 生成高斯分布的隨機(jī)數(shù),與原始數(shù)據(jù)相加要取整
                value = int(img[i, j, k] + delta*random.gauss(mu=mu, sigma=sigma))
                value = np.clip(a_max=255, a_min=0, a=value)
                img[i, j, k] = value
    return img


img = cv2.imread('woman.png')

cv2.imwrite('saltPepper.jpg', salt_and_pepper_noise(img, 0.3))
cv2.imwrite('gaussain.jpg', gaussian_noise(img, 0, 1, 100))

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

可以看到上述為圖像添加椒鹽噪聲和高斯噪聲的方法。對(duì)于高斯噪聲來說,函數(shù)gaussian_noise()中的mu參數(shù)代表了隨機(jī)數(shù)高斯分布的平均值,sigma代表隨機(jī)數(shù)高斯分布的標(biāo)準(zhǔn)差,而參數(shù)delta代表一個(gè)系數(shù),表明添加高斯噪聲的強(qiáng)度。

處理噪聲

OpenCV提供了幾種濾波方法,如中值濾波、雙邊濾波、高斯模糊、二維卷積等,

import cv2
import random
import numpy as np

# 模糊與濾波
salt_and_pepper_img = cv2.imread('saltPepper.jpg')
gaussain_img = cv2.imread('gaussain.jpg')

# 二維卷積
kernel = np.ones((5, 5), np.float32) / 25  # 每個(gè)值是0.04
conv_2d_img = cv2.filter2D(salt_and_pepper_img, -1, kernel)
cv2.imwrite('filter_2d_img.jpg', conv_2d_img)

# 中值濾波
median_blur_img = cv2.medianBlur(salt_and_pepper_img, 5)  # 參數(shù)5表示大小為5x5的區(qū)域像素值進(jìn)行計(jì)算
cv2.imwrite('median_blur_img.jpg', median_blur_img)

# 高斯模糊
gaussian_blur_img = cv2.GaussianBlur(gaussain_img, (5, 5), 0)
cv2.imwrite('gaussian_blur_img.jpg', gaussian_blur_img)

# 雙邊濾波
bilateral_filter_img = cv2.bilateralFilter(gaussain_img, 9, 75, 75)  # 9代表鄰域直徑,兩個(gè)參數(shù)75分別代表值域與空域標(biāo)準(zhǔn)差
cv2.imwrite('bilateral_filter_img.jpg', bilateral_filter_img)

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理,# OpenCV,數(shù)字圖像處理,opencv,數(shù)字圖像處理,亮度對(duì)比度,幾何變換,噪聲處理

可以看到,中值濾波的效果是最好的。文章來源地址http://www.zghlxwxcb.cn/news/detail-695763.html

到了這里,關(guān)于數(shù)字圖像處理:亮度對(duì)比度-幾何變換-噪聲處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • OpenCV改變圖像的對(duì)比度和亮度

    OpenCV改變圖像的對(duì)比度和亮度

    在本教程中,您將學(xué)習(xí)如何: 訪問像素值 用零初始化矩陣 了解 cv::saturate_cast 的作用以及它為什么有用 獲取有關(guān)像素轉(zhuǎn)換的一些很酷的信息 在實(shí)際示例中提高圖像的亮度 注意 下面的解釋屬于Richard Szeliski的《計(jì)算機(jī)視覺:算法和應(yīng)用》一書 圖像處理 一般圖像處理算子是

    2024年02月21日
    瀏覽(27)
  • OpenCV增加圖像的亮度及對(duì)比度

    OpenCV增加圖像的亮度及對(duì)比度

    案例:輸出一張?jiān)瓐D,增加該圖片的亮度及對(duì)比度 基本概念: 亮度:RGB的像素值范圍是0~255,我們稱從0——255隨著像素值的增加圖像會(huì)越來月亮,反之會(huì)越來越暗。所以我們可以通過對(duì)圖像像素加減來改變圖像的亮度。 對(duì)比度:其反應(yīng)的是圖像中各像素的差異(層次感、落

    2024年02月12日
    瀏覽(24)
  • 【OpenCV ? c++】圖像對(duì)比度調(diào)整 | 圖像亮度調(diào)整

    【OpenCV ? c++】圖像對(duì)比度調(diào)整 | 圖像亮度調(diào)整

    ?? 個(gè)人簡介:CSDN「 博客新星 」TOP 10 , C/C++ 領(lǐng)域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 【OpenCV ? c++】計(jì)算機(jī)視覺 ?? 若有幫助,還請(qǐng) 關(guān)注?點(diǎn)贊?收藏 ,不行的話我再努努力??????

    2024年02月11日
    瀏覽(25)
  • OpenCvSharp學(xué)習(xí)筆記6--改變圖像的對(duì)比度和亮度

    OpenCvSharp學(xué)習(xí)筆記6--改變圖像的對(duì)比度和亮度

    訪問像素值mat.AtT(y,x) 用0初始化矩陣Mat.Zeros 飽和操作SaturateCast.ToByte g(x)=αf(x)+β 用α(0)和β一般稱作增益(gain)和偏置(bias),分別控制對(duì)比度和亮度 把f(x)看成源圖像像素,把g(x)看成輸出圖像像素 g(i,j)=α?f(i,j)+β 其中,i和j表示像素位于 第i行 和 第j列(左上角為第0行、第0列) M

    2024年02月03日
    瀏覽(32)
  • Python OpenCV調(diào)整圖像亮度對(duì)比度及RGB色彩

    python通過opencv庫調(diào)整圖像的步驟: 1. 讀取圖像 直接通過cv2庫讀取圖像,可以讀取jpg, png等格式 2. 調(diào)整圖像亮度及對(duì)比度 OpenCV提供 convertScaleAbs 函數(shù)來調(diào)整對(duì)比度和亮度,可以直接調(diào)用該函數(shù) 如果只調(diào)整RGB顏色通道,則可以忽略此步驟 3.?分離出圖片的B,R,G顏色通道 使用

    2024年02月03日
    瀏覽(28)
  • 使用OpenCV處理圖片的亮度、對(duì)比度、曝光、高光、陰影、飽和度、色溫,色相(附源碼)

    屏幕錄制2023-05-22 22.09.32 集成opencv的方式請(qǐng)參照上一個(gè)帖子 OpenCV在iOS端的集成及Mat和UIImage互相轉(zhuǎn)化(附源碼) 廢話不多說直接上代碼,伸手黨福利: 代碼中記得引入頭文件及命名空間 下面的處理方法統(tǒng)一對(duì)使用最多的8bit圖片處理,如果是16bit的圖片需要修改對(duì)應(yīng)的格式,在

    2024年02月11日
    瀏覽(30)
  • 【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對(duì)比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。...

    【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對(duì)比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。...

    這段代碼是使用C++和OpenCV庫編寫的圖像處理程序,其主要功能是 調(diào)整圖像的亮度和對(duì)比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。 用戶可以通過界面上的滑動(dòng)條來動(dòng)態(tài)地調(diào)整亮度和對(duì)比度參數(shù)從而觀察到圖像即時(shí)的變化效果。程序首先讀取并顯示一個(gè)灰度圖像

    2024年04月10日
    瀏覽(28)
  • 3d模型素材亮度和對(duì)比度如何調(diào)整呢?

    3d模型素材亮度和對(duì)比度如何調(diào)整呢?

    1、修改材質(zhì)參數(shù):打開3ds Max后,選擇要調(diào)整亮度和對(duì)比度的3D模型素材。然后,進(jìn)入材質(zhì)編輯器,選擇相應(yīng)的材質(zhì)球。在材質(zhì)編輯器中,你可以調(diào)整材質(zhì)的漫反射、反射和高光等參數(shù),這些參數(shù)將影響模型的亮度和對(duì)比度。通過調(diào)整參數(shù),你可以使模型素材更加明亮或昏暗,

    2024年01月19日
    瀏覽(27)
  • FFmpeg濾鏡: 調(diào)整視頻的亮度-對(duì)比度-飽和度

    FFmpeg濾鏡: 調(diào)整視頻的亮度-對(duì)比度-飽和度

    亮度是指圖片的明暗程度,對(duì)比度是指圖片明暗的差異,飽和度則是指圖片顏色的飽滿程度。在計(jì)算機(jī)中每個(gè)圖片上的像素點(diǎn)都由三個(gè)字節(jié)來進(jìn)行表示,分別代表著像素的RGB數(shù)據(jù)。 圖片上每個(gè)像素的每種顏色都可以有從0到255的變化,數(shù)值越高,顏色的亮度越大,因此當(dāng)改變

    2024年02月13日
    瀏覽(26)
  • python numpy opencv調(diào)整圖片亮度對(duì)比度飽和度

    (想要完整代碼直接劃到最后) 原理比較簡單,本質(zhì)上是對(duì)圖像各個(gè)通道的每個(gè)像素點(diǎn)做線性變換,對(duì)超出范圍[0,255]的做截?cái)嗵幚?,所以使用numpy處理比較方便 一下函數(shù)為了

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包