最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

opencv圖像濾波

2023-07-11 22:47 作者:自由的萊納  | 我要投稿

開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)(OpenCV)是一個(gè)廣泛使用的計(jì)算機(jī)視覺(jué)庫(kù),它提供了許多圖像處理和計(jì)算機(jī)視覺(jué)算法。在 OpenCV 中,濾波是圖像處理中的一個(gè)重要概念,它可以用來(lái)改變圖像的外觀、增強(qiáng)圖像的特征、去除噪聲等。在本文中,我們將介紹一些常見(jiàn)的圖像濾波算法,并給出相應(yīng)的 OpenCV 代碼示例。 ## 1. 中值濾波 中值濾波是一種常用的圖像平滑濾波器,它用來(lái)去除圖像中的噪聲和不必要的細(xì)節(jié)。中值濾波器通常采用鄰域平均值作為濾波器值,即將圖像上的每個(gè)像素替換為相鄰像素的中值。 下面是使用 OpenCV 實(shí)現(xiàn)中值濾波的 Python 代碼: ```python?? import cv2?? import numpy as np # 讀取圖像?? img = cv2.imread('image.jpg') # 計(jì)算圖像尺寸?? height, width = img.shape[:2] # 創(chuàng)建中值濾波器?? kernel = np.array([[-1, -1, -1],?? ?????????[-1,?9, -1],?? ?????????[-1, -1, -1]]) # 應(yīng)用中值濾波器?? blurred_img = cv2.filter2D(img, -1, kernel) # 顯示圖像?? cv2.imshow('Original Image', img)?? cv2.imshow('Blurred Image', blurred_img)?? cv2.waitKey(0)?? cv2.destroyAllWindows()?? ``` 在上面的代碼中,我們首先使用 OpenCV 的 `imread` 函數(shù)讀取一張圖片,然后使用 `shape` 函數(shù)獲取圖片的尺寸。接著,我們創(chuàng)建一個(gè) 3x3 的中值濾波器,并將其存儲(chǔ)在 NumPy 的 `kernel` 數(shù)組中。最后,我們使用 OpenCV 的 `filter2D` 函數(shù)來(lái)應(yīng)用中值濾波器,并將結(jié)果存儲(chǔ)在 `blurred_img` 變量中。最后,我們使用 OpenCV 的 `imshow` 函數(shù)來(lái)顯示原始圖像和模糊圖像,并使用 `waitKey` 函數(shù)等待用戶按下任意鍵后關(guān)閉窗口。 ## 2. 均值濾波 均值濾波是一種常用的圖像平滑濾波器,它用來(lái)去除圖像中的噪聲和不必要的細(xì)節(jié)。均值濾波器通常采用鄰域平均值作為濾波器值,即將圖像上的每個(gè)像素替換為相鄰像素的平均值。 下面是使用 OpenCV 實(shí)現(xiàn)均值濾波的 Python 代碼: ```python?? import cv2?? import numpy as np # 讀取圖像?? img = cv2.imread('image.jpg') # 計(jì)算圖像尺寸?? height, width = img.shape[:2] # 創(chuàng)建均值濾波器?? kernel = np.array([[-1, -1, -1],?? ?????????[-1,?1, -1],?? ?????????[-1, -1, -1]]) # 應(yīng)用均值濾波器?? blurred_img = cv2.filter2D(img, -1, kernel) # 顯示圖像?? cv2.imshow('Original Image', img)?? cv2.imshow('Blurred Image', blurred_img)?? cv2.waitKey(0)?? cv2.destroyAllWindows()?? ``` 在上面的代碼中,我們首先使用 OpenCV 的 `imread` 函數(shù)讀取一張圖片,然后使用 `shape` 函數(shù)獲取圖片的尺寸。接著,我們創(chuàng)建一個(gè) 3x3 的均值濾波器,并將其存儲(chǔ)在 NumPy 的 `kernel` 數(shù)組中。最后,我們使用 OpenCV 的 `filter2D` 函數(shù)來(lái)應(yīng)用均值濾波器,并將結(jié)果存儲(chǔ)在 `blurred_img` 變量中。最后,我們使用 OpenCV 的 `imshow` 函數(shù)來(lái)顯示原始圖像和模糊圖像,并使用 `waitKey` 函數(shù)等待用戶按下任意鍵后關(guān)閉窗口。 ## 3. 高斯濾波 高斯濾波是一種常用的圖像平滑濾波器,它用來(lái)去除圖像中的噪聲和不必要的細(xì)節(jié)。高斯濾波器通常采用高斯函數(shù)作為濾波器函數(shù),即將圖像上的每個(gè)像素替換為高斯函數(shù)的值。 下面是使用 OpenCV 實(shí)現(xiàn)高斯濾波的 Python 代碼: ```python?? import cv2?? import numpy as np # 讀取圖像?? img = cv2.imread('image.jpg') # 計(jì)算圖像尺寸 計(jì)算圖像尺寸 height, width = img.shape[:2] # 創(chuàng)建高斯濾波器 kernel = np.array([[-1, -1, -1], [-1, 2, -1], [-1, -1, -1]]) # 應(yīng)用高斯濾波器 blurred_img = cv2.filter2D(img, -1, kernel) # 顯示圖像 cv2.imshow('Original Image', img) cv2.imshow('Blurred Image', blurred_img) cv2.waitKey(0) cv2.destroyAllWindows() 在上面的代碼中,我們首先使用 OpenCV 的 `imread` 函數(shù)讀取一張圖片,然后使用 `shape` 函數(shù)獲取圖片的尺寸。接著,我們創(chuàng)建一個(gè) 3x3 的高斯濾波器,并將其存儲(chǔ)在 NumPy 的 `kernel` 數(shù)組中。最后,我們使用 OpenCV 的 `filter2D` 函數(shù)來(lái)應(yīng)用高斯濾波器,并將結(jié)果存儲(chǔ)在 `blurred_img` 變量中。最后,我們使用 OpenCV 的 `imshow` 函數(shù)來(lái)顯示原始圖像和模糊圖像,并使用 `waitKey` 函數(shù)等待用戶按下任意鍵后關(guān)閉窗口。 ## 4. 邊緣檢測(cè) 邊緣檢測(cè)是一種常用的圖像處理技術(shù),它用來(lái)檢測(cè)圖像中的邊緣。在 OpenCV 中,我們可以使用 Canny 算子來(lái)實(shí)現(xiàn)邊緣檢測(cè)。Canny 算子是一種廣泛使用的邊緣檢測(cè)算法,它采用高斯濾波、Sobel 算子和非極大值抑制等步驟來(lái)提取邊緣。 下面是使用 OpenCV 實(shí)現(xiàn) Canny 邊緣檢測(cè)的 Python 代碼: ```python import cv2 import numpy as np # 讀取圖像 img = cv2.imread('image.jpg') # 計(jì)算圖像尺寸 height, width = img.shape[:2] # 創(chuàng)建 Canny 算子 kernel = np.array([[-1, -1, -1], [-1, 1, -1], [-1, -1, -1]]) # 應(yīng)用 Canny 算子 edges = cv2.Canny(img, 100, 200) # 顯示圖像 cv2.imshow('Original Image', img) cv2.imshow('Edges', edges) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在上面的代碼中,我們首先使用 OpenCV 的 `imread` 函數(shù)讀取一張圖片,然后使用 `shape` 函數(shù)獲取圖片的尺寸。接著,我們創(chuàng)建一個(gè) 3x3 的 Canny 算子,并將其存儲(chǔ)在 NumPy 的 `kernel` 數(shù)組中。最后,我們使用 OpenCV 的 `Canny` 函數(shù)來(lái)應(yīng)用 Canny 算子,并將結(jié)果存儲(chǔ)在 `edges` 變量中。最后,我們使用 OpenCV 的 `imshow` 函數(shù)來(lái)顯示原始圖像和邊緣,并使用 `waitKey` 函數(shù)等待用戶按下任意鍵后關(guān)閉窗口。 ## 5. 輪廓提取 輪廓提取是一種常用的圖像處理技術(shù),它用來(lái)提取圖像中的輪廓。在 OpenCV 中,我們可以使用 Sobel 算子來(lái)實(shí)現(xiàn)輪廓提取。Sobel 算子是一種廣泛使用的邊緣檢測(cè)算法,它采用高斯濾波、Sobel 算子和非極大值抑制等步驟來(lái)提取邊緣。 下面是使用 OpenCV 實(shí)現(xiàn) Sobel 輪廓提取的 Python 代碼: ```python import cv2 import numpy as np # 讀取圖像 img = cv2.imread('image.jpg') # 計(jì)算圖像尺寸 height, width = img.shape[:2] # 創(chuàng)建 Sobel 算子 kernel = np.array([[-1, -1, -1], [0, 1, 0], [-1, -1, -1]]) # 應(yīng)用 Sobel 算子 edges = cv2.Sobel(img, 100, 200) # 顯示圖像 cv2.imshow('Original Image', img) cv2.imshow('Edges', edges) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在上面的代碼中,我們首先使用 OpenCV 的 `imread` 函數(shù)讀取一張圖片,然后使用 `shape` 函數(shù)獲取圖片的尺寸。接著,我們創(chuàng)建一個(gè) 3x3 的 Sobel 算子,并將其存儲(chǔ)在 NumPy 的 `kernel` 數(shù)組中。最后,我們使用 OpenCV 的 `Sobel` 函數(shù)來(lái)應(yīng)用 Sobel 算子,并將結(jié)果存儲(chǔ)在 `edges` 變量中。最后,我們使用 OpenCV 的 `imshow` 函數(shù)來(lái)顯示原始圖像和邊緣,并使用 `waitKey` 函數(shù)等待用戶按下任意鍵后關(guān)閉窗口。

opencv圖像濾波的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
五莲县| 临城县| 东兰县| 桂东县| 嘉荫县| 永登县| 缙云县| 乐业县| 禄劝| 淮阳县| 通化市| 甘孜| 寻乌县| 南安市| 松江区| 福建省| 电白县| 昌黎县| 内乡县| 广元市| 荆门市| 定南县| 寻乌县| 穆棱市| 梧州市| 温州市| 申扎县| 思南县| 芒康县| 礼泉县| 班戈县| 襄樊市| 衡南县| 泰宁县| 丹巴县| 万宁市| 大同市| 安图县| 庐江县| 中宁县| 天门市|