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

圖像構(gòu)成與信號處理之三——圖像濾波

這篇具有很好參考價值的文章主要介紹了圖像構(gòu)成與信號處理之三——圖像濾波。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、什么是圖像濾波

圖像濾波是一種常見的圖像處理技術(shù),用于平滑圖像,去除噪聲和邊緣檢測等任務(wù)。其工作的原理是通過提前設(shè)定濾波器,將濾波器作用與原圖像,得到擁有需要的濾波效果的圖像。

一般圖像濾波分為平滑類:均值濾波;去噪類:中值濾波;突出邊緣:雙邊濾波;等。

二、均值濾波

1. 均值濾波原理

通過計算像素周圍鄰域內(nèi)像素值的平均值來代替該像素的值。
圖像濾波,圖像處理,信號處理,opencv,計算機視覺
類似上圖,如果卷積是一個3*3的矩陣,那么矩陣濾波中每一個矩陣元素都為1/9。

(1) 一維信號

在前一篇文章**“圖像構(gòu)成與信號處理之二——濾波(信號部分)”**中,已經(jīng)介紹過“算術(shù)平均濾波法”: o u t p u t = s u m ( i n p u t ) / l e n ( i n p u t ) output = sum(input) / len(input) output=sum(input)/len(input)

(2)二維圖像信號

均值濾波也可以表示成類似的公式 I f i l t e r e d [ x , y ] = m e a n ( I [ x + i , y + j ] ) I_{filtered}[x,y]=mean(I[x+i,y+j]) Ifiltered?[x,y]=mean(I[x+i,y+j]),其中I_filtered[x, y] 是濾波后的像素值,I[x+i, y+j] 是原始圖像的像素值。

2. 均值濾波實現(xiàn)

(1)OpenCV在C++與Python中的實現(xiàn)

下列代碼示例分別是C++和Python使用OpenCV模塊進行均值濾波的示例。均值濾波使用一個滑動窗口覆蓋圖像的區(qū)域,然后計算窗口內(nèi)像素的平均值,并將該平均值作為中心像素的新值。

#include <opencv2/opencv.hpp>

int main() {
    // 讀取圖像
    cv::Mat image = cv::imread("path/to/your/image.jpg", cv::IMREAD_COLOR);

    if (image.empty()) {
        std::cerr << "Could not read the image." << std::endl;
        return -1;
    }

    // 定義濾波器的大小
    int kernel_size = 11; // 奇數(shù)值,例如 3、5、7...

    // 進行均值濾波
    cv::Mat filtered_image;
    cv::blur(image, filtered_image, cv::Size(kernel_size, kernel_size));

    // 顯示原始圖像和濾波后的圖像
    cv::imshow("Original Image", image);
    cv::imshow("Filtered Image", filtered_image);

    cv::waitKey(0);

    return 0;
}
import cv2

# 讀取圖像
image = cv2.imread('path/to/your/image.jpg')

if image is None:
    print("Could not read the image.")
else:
    # 定義濾波器的大小
    kernel_size =11, 11)  # 奇數(shù)值,例如 (3, 3)、(5, 5)、(7, 7)...

    # 進行均值濾波
    filtered_image = cv2.blur(image, kernel_size)

    # 顯示原始圖像和濾波后的圖像
    cv2.imshow('Original Image', image)
    cv2.imshow('Filtered Image', filtered_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

(2)實戰(zhàn)

圖像輸入

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

kernel=11

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

kernel=21

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

三、中值濾波

1. 中值濾波原理

中值濾波是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個鄰域中各點值的中值代替(因此鄰域的大小必須為*),讓周圍的像素值接近真實值,從而消除孤立的噪聲點。(類似下圖的例子)

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

類似上圖,如果卷積是一個3*3的矩陣,那么矩陣濾波中每一個矩陣元素分別為對應(yīng)矩陣中的中位數(shù)值。

(1) 一維信號

在前一篇文章**“圖像構(gòu)成與信號處理之二——濾波(信號部分)”**中,已經(jīng)介紹過“中位值濾波法”: o u t p u t = m e d i a n ( i n p u t ) output = median(input) output=median(input)

(2)二維圖像信號

均值濾波也可以表示成類似的公式 I f i l t e r e d [ x , y ] = m e d i a n ( I [ x + i , y + j ] ) I_{filtered}[x,y]=median(I[x+i,y+j]) Ifiltered?[x,y]=median(I[x+i,y+j]),其中I_filtered[x, y] 是濾波后的像素值,I[x+i, y+j] 是原始圖像的像素值。

2. 中值濾波實現(xiàn)

(1)OpenCV在C++與Python中的實現(xiàn)

下列代碼示例分別是C++和Python使用OpenCV模塊進行中值濾波的示例。中值濾波使用一個滑動窗口覆蓋圖像的區(qū)域,然后計算窗口內(nèi)像素的中位數(shù)值,并將該值作為中心像素的新值。

#include <iostream>
#include <opencv2/opencv.hpp>

int main() {
    cv::Mat image = cv::imread("path/to/your/image.jpg", cv::IMREAD_GRAYSCALE);

    if (image.empty()) {
        std::cout << "Failed to read image." << std::endl;
        return -1;
    }

    cv::Mat filteredImage;
    cv::medianBlur(image, filteredImage, 11);  // 11表示濾波窗口大小,可以根據(jù)需要調(diào)整

    cv::imshow("Original Image", image);
    cv::imshow("Filtered Image", filteredImage);
    cv::waitKey(0);

    return 0;
}
import cv2

# 讀取圖像
image = cv2.imread('path/to/your/image.jpg')

if image is None:
    print("Could not read the image.")
else:
    # 定義濾波器的大?。ū仨殲槠鏀?shù))
    kernel_size = 5  # 例如 3、5、7...

    # 進行中值濾波
    median_filtered_image = cv2.medianBlur(image, kernel_size)

    # 顯示原始圖像和中值濾波后的圖像
    cv2.imshow('Original Image', image)
    cv2.imshow('Median Filtered Image', median_filtered_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

(2)實戰(zhàn)(輸入圖片與上述實驗一樣)

kernel=11

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

kernel=21

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

四、高斯濾波

1. 高斯濾波原理

通過應(yīng)用高斯函數(shù)來計算像素周圍鄰域內(nèi)像素值的加權(quán)平均值,以此來代替該像素的值。詳細(xì)原理可以參考以下博客。

(63條消息) 高斯濾波_MingChaoSun的博客-CSDN博客

2. 高斯濾波實現(xiàn)

(1)OpenCV在C++與Python中的實現(xiàn)

下列代碼示例分別是C++和Python使用OpenCV模塊進行高斯濾波的示例。高斯濾波使用一個滑動窗口覆蓋圖像的區(qū)域,然后計算窗口內(nèi)像素的高斯函數(shù)數(shù)值,并將該值作為窗口的新值。

#include <iostream>
#include <opencv2/opencv.hpp>
usingnamespace cv;
usingnamespace std;

intmain()
{
    Mat src= imread("lena.jpg");
if (src.empty())
    {
        cout<< "Could not open or find the image"<< endl;
return-1;
    }

    Mat dst1, dst2;
// 均值濾波
    blur(src, dst1, Size(3, 3));
// 高斯濾波
    GaussianBlur(src, dst2, Size(11, 11), 0);

    imshow("Source Image", src);
    imshow("Mean Filtered Image", dst1);
    imshow("Gaussian Filtered Image", dst2);

    waitKey();
return 0;
}
import cv2

# 讀取圖像
image = cv2.imread('path/to/your/image.jpg')

if image is None:
    print("Could not read the image.")
else:
    # 定義濾波器的大?。ū仨殲槠鏀?shù))
    kernel_size = (5, 5)  # 例如 (3, 3)、(5, 5)、(7, 7)...

    # 定義高斯核的標(biāo)準(zhǔn)差
    sigma_x = 0  # 標(biāo)準(zhǔn)差值,0表示根據(jù)核的大小自動計算

    # 進行高斯濾波
    gaussian_filtered_image = cv2.GaussianBlur(image, kernel_size, sigma_x)

    # 顯示原始圖像和高斯濾波后的圖像
    cv2.imshow('Original Image', image)
    cv2.imshow('Gaussian Filtered Image', gaussian_filtered_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

(2)實戰(zhàn)(輸入與上述濾波算法相同)

kernel=11

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

kernel=21

圖像濾波,圖像處理,信號處理,opencv,計算機視覺

五、結(jié)論

通常情況下,濾波核越大,濾波效果會越平滑,但也可能導(dǎo)致圖像細(xì)節(jié)喪失或模糊。這是因為較大的核會考慮更多的像素,從而導(dǎo)致局部變化被更加平均化。

同時,較大的濾波核也可能導(dǎo)致處理時間增加,因為計算需要考慮更多的像素。因此,在選擇濾波核的大小時,需要權(quán)衡平滑效果、細(xì)節(jié)保留和計算效率。

以下是不同濾波核大小可能產(chǎn)生的效果:文章來源地址http://www.zghlxwxcb.cn/news/detail-840870.html

  • 小核 (3x3 或 5x5):較小的核可以保留更多的細(xì)節(jié),但噪聲也可能被保留。適用于一些需要保留邊緣和細(xì)節(jié)的情況。
  • 中等核 (7x7 或 9x9):這種大小的核可以在平滑和細(xì)節(jié)保留之間取得平衡,但可能會對某些細(xì)節(jié)造成一定程度的模糊。
  • 大核 (11x11 或更大):較大的核會更強烈地平滑圖像,可能會使圖像看起來更加模糊。這在噪聲較多或需要強烈平滑的情況下可能很有用。

到了這里,關(guān)于圖像構(gòu)成與信號處理之三——圖像濾波的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包