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

OpenCV-Python中的圖像處理-圖像直方圖

這篇具有很好參考價值的文章主要介紹了OpenCV-Python中的圖像處理-圖像直方圖。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

圖像直方圖

  • 通過直方圖你可以對整幅圖像的灰度分布有一個整體的了解。直方圖的 x 軸是灰度值( 0 到 255), y 軸是圖片中具有同一個灰度的點的數(shù)目。
  • BINS:上面的直方圖顯示了每個灰度值對應(yīng)的像素數(shù)。如果像素值為 0到255,你就需要 256 個數(shù)來顯示上面的直方圖。但是,如果你不需要知道每一個像素值的像素點數(shù)目的,而只希望知道兩個像素值之間的像素點數(shù)目怎么辦呢?舉例來說,我們想知道像素值在 0 到 15 之間的像素點的數(shù)目,接著是 16 到31,…, 240 到 255。我們只需要 16 個值來繪制直方圖。
  • DIMS:表示我們收集數(shù)據(jù)的參數(shù)數(shù)目。在本例中,我們對收集到的數(shù)據(jù)只考慮一件事:灰度值。所以這里就是 1。
  • RANGE:就是要統(tǒng)計的灰度值范圍,一般來說為 [0, 256],也就是說所有的灰度值。

統(tǒng)計直方圖

  • cv2.calcHist():OpenCV統(tǒng)計直方圖
    cv2:calcHist(images; channels; mask; histSize; ranges[; hist[; accumulate]])
    1. images: 原圖像(圖像格式為 uint8 或 float32)。當傳入函數(shù)時應(yīng)該
      用中括號 [] 括起來,例如: [img]。
    2. channels: 同樣需要用中括號括起來,它會告訴函數(shù)我們要統(tǒng)計那幅圖
      像的直方圖。如果輸入圖像是灰度圖,它的值就是 [0];如果是彩色圖像
      的話,傳入的參數(shù)可以是 [0], [1], [2] 它們分別對應(yīng)著通道 B, G, R。
    3. mask: 掩模圖像。要統(tǒng)計整幅圖像的直方圖就把它設(shè)為 None。但是如
      果你想統(tǒng)計圖像某一部分的直方圖的話,你就需要制作一個掩模圖像,并
      使用它。(后邊有例子)
    4. histSize:BIN 的數(shù)目。也應(yīng)該用中括號括起來,例如: [256]。
    5. ranges: 像素值范圍,通常為 [0, 256]

    img = cv2.imread(‘home.jpg’,0)
    #別忘了中括號 [img],[0],None,[256],[0,256],只有 mask 沒有中括號
    hist = cv2.calcHist([img],[0],None,[256],[0,256])
    hist 是一個 256x1 的數(shù)組,每一個值代表了與次灰度值對應(yīng)的像素點數(shù)目。

  • np.histogram():Numpy統(tǒng)計直方圖
  • np.bincount():Numpy統(tǒng)計直方圖(一維直方圖,速度快)

#img.ravel() 將圖像轉(zhuǎn)成一維數(shù)組,這里沒有中括號。
hist,bins = np.histogram(img.ravel(),256,[0,256])
Numpy 還 有 一 個 函 數(shù) np.bincount(), 它 的 運 行 速 度 是
np.histgram 的 十 倍。 所 以 對 于 一 維 直 方 圖, 我 們 最 好 使 用 這 個函 >數(shù)。 使 用 np.bincount 時 別 忘 了 設(shè) 置 minlength=256。
hist=np.bincount(img.ravel(), minlength=256)

繪制直方圖

Matplotlib繪制灰度直方圖

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/leuvenA.jpg', cv2.IMREAD_GRAYSCALE)
plt.hist(img.ravel(), 256, [0, 256])
plt.show()

OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

Matplotlib繪制RGB直方圖

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/leuvenA.jpg', cv2.IMREAD_COLOR)

color = ('b', 'g', 'r')

for i, col in enumerate(color):
    histr = cv2.calcHist([img], [i], None, [256], [0, 256])
    plt.plot(histr, color = col)
    plt.xlim([0, 256])
plt.show()

OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

使用掩膜統(tǒng)計直方圖

要統(tǒng)計圖像某個局部區(qū)域的直方圖只需要構(gòu)建一副掩模圖像。將要統(tǒng)計的部分設(shè)置成白色,其余部分為黑色,就構(gòu)成了一副掩模圖像。然后把這個掩模圖像傳給函數(shù)就可以了。

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/leuvenA.jpg', cv2.IMREAD_GRAYSCALE)
h,w = img.shape
print(h,w)

# create mask
mask = np.zeros(img.shape[:2], np.uint8)
mask[100:400, 100:500] = 255
masked_img = cv2.bitwise_and(img, img, mask = mask)

hist_full = cv2.calcHist([img], [0], None, [256], [0, 256])
hist_mask = cv2.calcHist([img], [0], mask, [256], [0, 256])

plt.subplot(221), plt.imshow(img, 'gray')
plt.subplot(222), plt.imshow(mask, 'gray')
plt.subplot(223), plt.imshow(masked_img, 'gray')
plt.subplot(224), plt.plot(hist_full, 'r'), plt.plot(hist_mask, 'b')
plt.xlim([0, 256])
plt.show()

紅色線是整幅圖的直方圖,藍色線是掩膜之后的直方圖:
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

直方圖均衡化

  • 如果一副圖像中的大多是像素點的像素值都集中在一個像素值范圍之內(nèi)會怎樣呢?例如,如果一幅圖片整體很亮,那所有的像素值應(yīng)該都會很高。但是一副高質(zhì)量的圖像的像素值分布應(yīng)該很廣泛。所以你應(yīng)該把它的直方圖做一個橫向拉伸(如下圖),這就是直方圖均衡化要做的事情。通常情況下這種操作會改善圖像的對比度。OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

  • 直方圖均衡化處理可以提高圖像的清晰度

Numpy圖像直方圖均衡化

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/leuvenA.jpg', cv2.IMREAD_GRAYSCALE)

# 1.使用Numpy統(tǒng)計原圖直方圖
# flatten() 將數(shù)組變成一維
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
# 計算累積分布圖
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()


# 2.使用Numpy直方圖均衡化處理
# 構(gòu)建 Numpy 掩模數(shù)組, cdf 為原數(shù)組,當數(shù)組元素為 0 時,掩蓋(計算時被忽略)。
cdf_m = np.ma.masked_equal(cdf, 0)
cdf_m = (cdf_m - cdf_m.min()) *255/(cdf_m.max() - cdf_m.min())
# 對被掩蓋的元素賦值,這里賦值為 0
cdf = np.ma.filled(cdf_m, 0).astype('uint8')
# 現(xiàn)在就獲得了一個表,我們可以通過查表得知與輸入像素對應(yīng)的輸出像素的值。我們只需要把這種變換應(yīng)用到圖像上就可以了
img2 = cdf[img]

# 3. 繪制原圖直方圖
plt.subplot(221), plt.imshow(cv2.cvtColor(img, cv2.COLOR_GRAY2RGB))
plt.subplot(222)
plt.plot(cdf_normalized, color='b')
plt.hist(img.flatten(), 256, [0, 256], color='r')
plt.xlim([0, 256])
plt.legend(('cdf', 'histogram'), loc='upper left')

# 4.繪制均衡化直方圖
plt.subplot(223), plt.imshow(cv2.cvtColor(img2, cv2.COLOR_GRAY2RGB))
plt.subplot(224)
plt.plot(cdf_m, color='g')
plt.hist(img2.flatten(), 256, [0, 256], color='r')
plt.xlim([0, 256])
plt.legend(('cdf', 'histogram'), loc='upper left')

plt.show()

OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

OpenCV中的直方圖均衡化

OpenCV 中的直方圖均衡化函數(shù)為 cv2.equalizeHist()。這個函數(shù)的輸入圖片僅僅是一副灰度圖像,輸出結(jié)果是直方圖均衡化之后的圖像。

import numpy as np
import cv2

img = cv2.imread('./resource/opencv/image/leuvenA.jpg', cv2.IMREAD_GRAYSCALE)
# 直方圖均衡化
equ = cv2.equalizeHist(img)
# 圖像拼接,左邊原圖,右邊直方圖均衡化之后的圖像
res = np.hstack((img, equ))

cv2.imshow('img', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

左邊原圖,右邊直方圖均衡化之后的圖像
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

CLAHE 有限對比適應(yīng)性直方圖均衡化

文章上邊做的直方圖均衡化會改變整個圖像的對比度,但是在很多情況下,這樣做的效果并不好。例如,下圖分別是輸入圖像和進行直方圖均衡化之后的輸出圖像。的確在進行完直方圖均衡化之后,圖片背景的對比度被改變了。但是你再
對比一下兩幅圖像中雕像的面圖,由于太亮我們丟失了很多信息。
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理
為了解決這個問題,我們需要使用自適應(yīng)的直方圖均衡化。這種情況下,整幅圖像會被分成很多小塊,這些小塊被稱為“tiles”(在 OpenCV 中 tiles 的大小默認是 8x8),然后再對每一個小塊分別進行直方圖均衡化(跟前面類似)。所以在每一個的區(qū)域中,直方圖會集中在某一個小的區(qū)域中(除非有噪聲干擾)。如果有噪聲的話,噪聲會被放大。為了避免這種情況的出現(xiàn)要使用對比度限制。對于每個小塊來說,如果直方圖中的 bin 超過對比度的上限的話,就把其中的像素點均勻分散到其他 bins 中,然后在進行直方圖均衡化。最后,為了去除每一個小塊之間“人造的”(由于算法造成)邊界,再使用雙線性差值,對小塊進行縫合。

import numpy as np
import cv2
from matplotlib import pyplot as plt


img = cv2.imread('./resource/opencv/image/clahe_2.jpg', cv2.IMREAD_GRAYSCALE)

# 均衡化處理
equ = cv2.equalizeHist(img)

# 自適應(yīng)均衡化處理
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
cl1 = clahe.apply(img)

# 繪制圖像
plt.subplot(131), plt.imshow(cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)), plt.title('img')
plt.subplot(132), plt.imshow(cv2.cvtColor(equ, cv2.COLOR_GRAY2RGB)), plt.title('equ')
plt.subplot(133), plt.imshow(cv2.cvtColor(cl1, cv2.COLOR_GRAY2RGB)), plt.title('cl1')
plt.show()

OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

2D直方圖

在前面的文章介紹了如何繪制一維直方圖,之所以稱為一維,是因為我們只考慮了圖像的一個特征:灰度值。但是在 2D 直方圖中我們就要考慮兩個圖像特征。對于彩色圖像的直方圖通常情況下我們需要考慮每個的顏色( Hue)和飽和度( Saturation)。根據(jù)這兩個特征繪制 2D 直方圖。

OpenCV中的2D直方圖

使用函數(shù) cv2.calcHist() 來計算直方圖既簡單又方便。如果要繪制顏色直方圖的話,我們首先需要將圖像的顏色空間從 BGR 轉(zhuǎn)換到 HSV。(記住,計算一維直方圖,要從 BGR 轉(zhuǎn)換到 HSV)。計算 2D 直方圖,函數(shù)的參數(shù)要做如下修改:

  • channels=[0, 1] 因為我們需要同時處理 H 和 S 兩個通道。
  • bins=[180, 256]H 通道為 180, S 通道為 256。
  • range=[0, 180, 0, 256]H 的取值范圍在 0 到 180, S 的取值范圍在 0 到 256。
import numpy as np
import cv2
from matplotlib import pyplot as plt


img = cv2.imread('./resource/opencv/image/home.jpg', cv2.IMREAD_COLOR)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hist = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])

plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB), 'gray')
plt.subplot(122), plt.imshow(hist, interpolation = 'nearest')
plt.show()


OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

Numpy中2D直方圖

Numpy 同樣提供了繪制 2D 直方圖的函數(shù):

  • np.histogram():一維直方圖
  • np.histogram2d():二緯直方圖
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('./resource/opencv/image/home.jpg', cv2.IMREAD_COLOR)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)#分離通道
hist, xbins, ybins = np.histogram2d(h.ravel(),s.ravel(),[180,256],[[0,180],[0,256]])

plt.subplot(131), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.subplot(132), plt.imshow(hist)
plt.show()

OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

直方圖反射投影

  • 直方圖反向投影是由 Michael J. Swain 和 Dana H. Ballard 在他們的文章“Indexing via color histograms”中提出。
  • 它可以用來做圖像分割,或者在圖像中找尋我們感興趣的部分。簡單來說,它會輸出與輸入圖像(待搜索)同樣大小的圖像,其中的每一個像素值代表了輸入圖像上對應(yīng)點屬于目標對象的概率。用更簡單的話來解釋,輸出圖像中像素值越高(越白)的點就越可能代表我們要搜索的目標(在輸入圖像所在的位置)。這是一個直觀的解釋。直方圖投影經(jīng)常與 camshift算法等一起使用。
  • 我們應(yīng)該怎樣來實現(xiàn)這個算法呢?首先我們要為一張包含我們要查找目標的圖像創(chuàng)建直方圖(在我們的示例中,我們要查找的是草地,其他的都不要)。我們要查找的對象要盡量占滿這張圖像(換句話說,這張圖像上最好是有且僅有我們要查找的對象)。最好使用顏色直方圖,因為一個物體的顏色要比它的灰度能更好的被用來進行圖像分割與對象識別。接著我們再把這個顏色直方圖投影到輸入圖像中尋找我們的目標,也就是找到輸入圖像中的每一個像素點的像素值在直方圖中對應(yīng)的概率,這樣我們就得到一個概率圖像,最后設(shè)置適當?shù)拈撝祵Ω怕蕡D像進行二值化,就這么簡單。

Numpy 中的直方圖反射投影算法

首先,我們要創(chuàng)建兩幅顏色直方圖,目標圖像的直方圖( ‘M’),(待搜索)輸入圖像的直方圖( ‘I’)。

import numpy as np
import cv2
from matplotlib import pyplot as plt

roi = cv2.imread('./resource/opencv/image/target.jpg', cv2.IMREAD_COLOR)
hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)

target = cv2.imread('./resource/opencv/image/messi5.jpg', cv2.IMREAD_COLOR)
hsvt = cv2.cvtColor(target, cv2.COLOR_BGR2HSV)

M = cv2.calcHist([hsv],  [0, 1], None, [180, 256], [0, 180, 0, 256])
I = cv2.calcHist([hsvt], [0, 1], None, [180, 256], [0, 180, 0, 256])

# 計算比值: R = M/I 。反向投影 R,也就是根據(jù) R 這個”調(diào)色板“創(chuàng)建一
# 副新的圖像,其中的每一個像素代表這個點就是目標的概率。
# 例如 B (x; y) = R [h (x; y) ; s (x; y)],
# 其中 h 為點( x, y)處的 hue 值, s 為點( x, y)處的
# saturation 值。最后加入再一個條件 B (x; y) = min [B (x; y) ; 1]
R = M/I

h, s, v = cv2.split(hsvt)
B = R[h.ravel(), s.ravel()]
B = np.minimum(B, 1)
B = B.reshape(hsvt.shape[:2])

# 現(xiàn)在使用一個圓盤算子做卷積, B = D × B,其中 D 為卷積核
disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))
B = cv2.filter2D(B, -1, disc)
B = np.uint8(B)

# 歸一化處理
cv2.normalize(B,B,0,255,cv2.NORM_MINMAX)
ret, thresh = cv2.threshold(B, 50, 255, 0)
# 別忘了是三通道圖像,因此這里使用 merge 變成 3 通道
thresh = cv2.merge((thresh,thresh,thresh))
res = cv2.bitwise_and(target, thresh)

res = np.hstack((target, thresh, res))
cv2.imshow('img', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

程序運行結(jié)果:
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理
target.jpg:是另外一副圖草地區(qū)域的一塊截圖
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理
messi5.jpg:
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理

OpenCV中的直方圖反射投影算法

OpenCV 提供的函數(shù) cv2.calcBackProject() 可以用來做直方圖反向投影。它的參數(shù)與函數(shù) cv2.calcHist 的參數(shù)基本相同。其中的一個參數(shù)是我們要查找目標的直方圖。同樣再使用目標的直方圖做反向投影之前我們應(yīng)該先對其做歸一化處理。返回的結(jié)果是一個概率圖像,我們再使用一個圓盤形卷積核對其做卷操作,最后使用閾值進行二值化。

import cv2
import numpy as np

roi = cv2.imread('./resource/opencv/image/target.jpg', cv2.IMREAD_COLOR)
hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)

target = cv2.imread('./resource/opencv/image/messi5.jpg', cv2.IMREAD_COLOR)
hsvt = cv2.cvtColor(target, cv2.COLOR_BGR2HSV)

# calculating object histogram
roihist = cv2.calcHist([hsv], [0,1], None, [180, 256], [0, 180, 0, 256])

# normalize histogram and apply backprojection
# 歸一化:原始圖像,結(jié)果圖像,映射到結(jié)果圖像中的最小值,最大值,歸一化類型
#cv2.NORM_MINMAX 對數(shù)組的所有值進行轉(zhuǎn)化,使它們線性映射到最小值和最大值之間
# 歸一化之后的直方圖便于顯示,歸一化之后就成了 0 到 255 之間的數(shù)了
cv2.normalize(roihist, roihist, 0, 255, cv2.NORM_MINMAX)
dst = cv2.calcBackProject([hsvt], [0, 1], roihist, [0, 180, 0, 256], 1)

# Now convolute with circular disc
# 此處卷積可以把分散的點連在一起
disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))
dst = cv2.filter2D(dst, -1, disc)

# threshold and binary AND
ret, thresh = cv2.threshold(dst, 50, 255, 0)
# 別忘了是三通道圖像,因此這里使用 merge 變成 3 通道
thresh = cv2.merge((thresh,thresh,thresh))
res = cv2.bitwise_and(target, thresh)

res = np.hstack((target, thresh, res))
cv2.imshow('img', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

程序運行結(jié)果:
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理
target.jpg:是另外一副圖草地區(qū)域的一塊截圖
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理
messi5.jpg:
OpenCV-Python中的圖像處理-圖像直方圖,OpenCV Python,python,opencv,圖像處理文章來源地址http://www.zghlxwxcb.cn/news/detail-651736.html

到了這里,關(guān)于OpenCV-Python中的圖像處理-圖像直方圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • OpenCV-Python中的圖像處理-霍夫變換

    OpenCV-Python中的圖像處理-霍夫變換

    霍夫(Hough)變換在檢測各種形狀的技術(shù)中非常流行,如果要檢測的形狀可以用數(shù)學(xué)表達式描述,就可以是使用霍夫變換檢測它。即使要檢測的形狀存在一點破壞或者扭曲也是可以使用。 Hough直線變換,可以檢測一張圖像中的直線 cv2.HoughLines(image, rho, theta, threshold) return:返回值

    2024年02月12日
    瀏覽(30)
  • OpenCV-Python中的圖像處理-傅里葉變換

    OpenCV-Python中的圖像處理-傅里葉變換

    傅里葉變換經(jīng)常被用來分析不同濾波器的頻率特性。我們可以使用 2D 離散傅里葉變換 (DFT) 分析圖像的頻域特性。實現(xiàn) DFT 的一個快速算法被稱為快速傅里葉變換( FFT)。 對于一個正弦信號:x (t) = A sin (2πft), 它的頻率為 f,如果把這個信號轉(zhuǎn)到它的頻域表示,我們會在頻率

    2024年02月12日
    瀏覽(23)
  • OpenCV-Python中的圖像處理-GrabCut算法交互式前景提取

    OpenCV-Python中的圖像處理-GrabCut算法交互式前景提取

    cv2.grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode=…) img:輸入圖像 mask:掩模圖像,用來確定那些區(qū)域是背景,前景,可能是前景/背景等。 可以設(shè)置為: cv2.GC_BGD,cv2.GC_FGD,cv2.GC_PR_BGD,cv2.GC_PR_FGD,或者直接輸入 0,1,2,3 也行。 rect :包含前景的矩形,格式為

    2024年02月12日
    瀏覽(20)
  • OpenCV-Python學(xué)習(xí)(10)—— OpenCV 圖像二值化處理(cv.threshold)

    OpenCV-Python學(xué)習(xí)(10)—— OpenCV 圖像二值化處理(cv.threshold)

    1. 學(xué)習(xí)目標 理解圖像的分類,不同類型的圖像的區(qū)別; 對圖像進行二值化處理,對【 cv.threshold 】函數(shù)的理解。 2. 圖像分類 2.1 不同類型圖像說明 按照顏色對圖像進行分類,可以分為二值圖像、灰度圖像和彩色圖像。 二值圖像: 只有黑色和白色兩種顏色的圖像。 每個像素

    2024年02月03日
    瀏覽(103)
  • 我在Vscode學(xué)OpenCV 圖像處理五(直方圖處理)

    我在Vscode學(xué)OpenCV 圖像處理五(直方圖處理)

    直方圖是一種統(tǒng)計圖,顯示了圖像中每個灰度級別(或顏色通道)的像素數(shù)量。通過分析圖像的直方圖,可以獲得關(guān)于圖像對比度、亮度和顏色分布等方面的重要信息。 了解圖像的對比度、亮度和色彩分布等信息。你可以使用OpenCV中的函數(shù)來計算和繪制圖像的直方圖,從而進

    2024年01月21日
    瀏覽(26)
  • 數(shù)字圖像處理(實踐篇)二十九 OpenCV-Python在圖像中檢測矩形、正方形和三角形的實踐

    數(shù)字圖像處理(實踐篇)二十九 OpenCV-Python在圖像中檢測矩形、正方形和三角形的實踐

    目錄 1 方案 2 實踐 1 方案 ①檢測矩形和正方形 ⒈檢測圖像中的所有輪廓。 ⒉循環(huán)檢查所有檢測到的輪廓。 ⒊為每個輪廓找到近似的輪廓。如果近似輪廓中的頂點數(shù)為4,則計算 寬高比 用來區(qū)分 矩形 和 正方形 。如果寬高比在0.9到1.1之間,則認為為正方形,否則的話,則為

    2024年01月25日
    瀏覽(99)
  • C#使用OpenCv(OpenCVSharp)圖像直方圖均衡化處理實例

    本文實例演示C#語言中如何使用OpenCv(OpenCVSharp)對圖像進行直方圖均衡化處理。 直方圖均衡化原理 直方圖均衡化(Histogram Equalization)是一種常用的圖像增強技術(shù),用于改善圖像的對比度和亮度分布。它通過重新分配圖像灰度級的像素值,使得圖像的直方圖在灰度范圍內(nèi)更加

    2024年02月07日
    瀏覽(75)
  • 彩色圖像處理之彩色圖像直方圖處理的python實現(xiàn)——數(shù)字圖像處理

    彩色圖像處理之彩色圖像直方圖處理的python實現(xiàn)——數(shù)字圖像處理

    彩色圖像的直方圖處理是一種重要的圖像處理技術(shù),用于改善圖像的視覺效果,增強圖像的對比度,或為后續(xù)的圖像處理任務(wù)(如圖像分割、特征提?。┳鰷蕚?。彩色圖像通常由紅色(R)、綠色(G)、藍色(B)三個顏色通道組成,因此彩色圖像的直方圖處理相比單色圖像更

    2024年01月23日
    瀏覽(25)
  • Python-OpenCV中的圖像處理-圖像平滑

    Python-OpenCV中的圖像處理-圖像平滑

    使用低通濾波器可以達到圖像模糊的目的。這對與去除噪音很有幫助。其實就是去除圖像中的高頻成分(比如:噪音,邊界)。所以邊界也會被模糊一點。(當然,也有一些模糊技術(shù)不會模糊掉邊界)。 這是由一個歸一化卷積框完成的。他只是用卷積框覆蓋區(qū)域所有像素的平

    2024年02月13日
    瀏覽(23)
  • Python-OpenCV中的圖像處理-圖像梯度

    Python-OpenCV中的圖像處理-圖像梯度

    圖像梯度,圖像邊界等 使用到的函數(shù)有: cv2.Sobel(), cv2.Scharr(), cv2.Laplacian() 等 原理:梯度簡單來說就是求導(dǎo)。OpenCV 提供了三種不同的梯度濾波器,或者說高通濾波器: Sobel,Scharr 和 Laplacian。Sobel, Scharr 其實就是求一階或二階導(dǎo)數(shù)。 Scharr 是對 Sobel(使用小的卷積核求解

    2024年02月13日
    瀏覽(98)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包