python學opencv|讀取圖像(五十四)使用cv2.blur()函數實現圖像像素均值處理

【1】引言

前序學習進程中,對圖像的操作均基于各個像素點上的BGR值不同而展開。

對于彩色圖像,每個像素點上的BGR值為三個整數,因為是三通道圖像;對于灰度圖像,各個像素上的BGR值是一個整數,因為這是單通道圖像。

如果對這部分內容暫時回憶不起來,可以通過鏈接回憶:

python學opencv|讀取圖像(九)用numpy創建黑白相間灰度圖_numpy生成全黑圖片-CSDN博客

python學opencv|讀取圖像(十)用numpy創建彩色圖像_cv2 通過numpy創建圖像-CSDN博客

不過實際追溯下來,圖像的大小確定后,像素就確定了,真正操作的都是像素點上的BGR值。

所以,在前序的圖像疊加效果原理追溯中,獲得疊加效果的根本原因都是因為各個函數執行了對BGR值的運算操作:

python學opencv|讀取圖像(四十四)原理探究:bitwise_and()函數實現圖像按位與運算-CSDN博客

按位計算過程是非常詳細的圖像疊加過程,如果只想對單張圖像操作,有時候可以通過直接修改單張圖像的BGR值實現圖像調整。

本次文章就先從最簡單的開始:通過調用cv2.blur()函數,把各個像素點的BGR值取平均值的方法,實現圖像的色彩調整。

【2】官網教程

點擊下方鏈接,直達cv2.blur()函數的官網頁面:

OpenCV: Image Filtering

cv2.blur()函數的官網頁面的解釋為:

圖1? cv2.blur()函數的官網頁面

相應的,cv2.blur()函數的參數解釋為:

void cv::blur???? (????

??????? InputArray???? src,?????????????????????????????????? #輸入圖像
??????? OutputArray???? dst,????????????????????????????? ? #輸出圖像
??????? Size???? ksize,???????????????????????????????????? ? ? #計算圖像均值像素核大小
??????? Point???? anchor = Point(-1,-1),?????????????? #圖像像素核錨點,會自動計算,為可選參數
??????? int???? borderType = BORDER_DEFAULT )?? #可選參數,邊界樣式,為可選參數

【3】代碼測試

首先是引入模塊和圖像:

import cv2 as cv  # 引入CV模塊# 讀取圖片
srcm = cv.imread('srcx.png')  # 讀取圖像srcx.png

然后對圖像做均值計算:

#均值計算
src1 = cv.blur(srcm,(3,3))  # 圖像取平均值,像素核大小為(3,3)
src2 = cv.blur(srcm,(5,5))  # 圖像取平均值,像素核大小為(5,5)
src3 = cv.blur(srcm,(7,7))  # 圖像取平均值,像素核大小為(7,7)

然后顯示和保存圖像:

# 顯示結果
cv.imshow('srcm ', srcm)
cv.imshow('src1 ', src1)
cv.imshow('src2 ', src2)
cv.imshow('src3 ', src3)
cv.imwrite('src1.png',src1)
# 窗口控制
cv.waitKey()  # 圖像不關閉
cv.destroyAllWindows()  # 釋放所有窗口

代碼運行相關的圖像有:

圖2 初始圖像srcx.png

圖3 均值圖像src1.png? 像素核(3,3)

圖4 均值圖像src2.png? 像素核(5,5)

圖5 均值圖像src3.png? 像素核(7,7)

由圖2到圖5可見,隨著像素核的增大,圖像越來越模糊。這提醒我們,控制像素核的大小,可以進一步控制圖像的模糊程度。

【4】細節說明

像素核使用奇數大小會比較好,因為奇數大小會在最中間圍成一個方格,這個方格就是核心方格,均值計算的值直接賦給這個核心方格就可以。

【5】總結

掌握了python+opencv實現調用cv2.blur()函數實現圖像BGR值平均處理的技巧。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894597.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894597.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894597.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kafka ACL(訪問控制列表)介紹

文章目錄 Kafka ACL(訪問控制列表)介紹1. Kafka ACL 的基本概念1.1 Kafka ACL 的目標1.2 Kafka ACL 的組成部分 2. Kafka 支持的資源類型2.1 Topic(主題)2.2 Consumer Group(消費者組)2.3 Cluster&#xff…

在 WSL2 中重啟 Ubuntu 實例

在 WSL2 中重啟 Ubuntu 實例,可以按照以下步驟操作: 方法 1: 使用 wsl 命令 關閉 Ubuntu 實例: 打開 PowerShell 或命令提示符,運行以下命令: wsl --shutdown這會關閉所有 WSL2 實例。 重新啟動 Ubuntu: 再次打開 Ubuntu&#x…

Spring Boot 2 快速教程:WebFlux處理流程(五)

WebFlux請求處理流程 下面是spring mvc的請求處理流程 具體步驟: 第一步:發起請求到前端控制器(DispatcherServlet) 第二步:前端控制器請求HandlerMapping查找 Handler (可以根據xml配置、注解進行查找) 匹配條件包括…

小程序設計和開發:如何研究同類型小程序的優點和不足。

一、確定研究目標和范圍 明確研究目的 在開始研究同類型小程序之前,首先需要明確研究的目的。是為了改進自己的小程序設計和開發,還是為了了解市場趨勢和用戶需求?不同的研究目的會影響研究的方法和重點。例如,如果研究目的是為了…

使用 Numpy 自定義數據集,使用pytorch框架實現邏輯回歸并保存模型,然后保存模型后再加載模型進行預測,對預測結果計算精確度和召回率及F1分數

1. 導入必要的庫 首先,導入我們需要的庫:Numpy、Pytorch 和相關工具包。 import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.metrics import accuracy_score, recall_score, f1_score2. 自定義數據集 …

Unity-編譯構建Android的問題記錄

文章目錄 報錯:AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout報錯信息解讀:原因分析最終處理方法 報錯:AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout 報錯信息解讀&#xff1…

【axios二次封裝】

axios二次封裝 安裝封裝使用 安裝 pnpm add axios封裝 // 進行axios二次封裝:使用請求與響應攔截器 import axios from axios import { ElMessage } from element-plus//創建axios實例 const request axios.create({baseURL: import.meta.env.VITE_APP_BASE_API,…

SQL進階實戰技巧:如何構建用戶行為轉移概率矩陣,深入洞察會話內活動流轉?

目錄 1 場景描述 1.1 用戶行為轉移概率矩陣概念 1.2 用戶行為轉移概率矩陣構建方法 (1) 數據收集

Vue3.0實戰:大數據平臺可視化(附完整項目源碼)

文章目錄 創建vue3.0項目項目初始化項目分辨率響應式設置項目頂部信息條創建頁面主體創建全局引入echarts和axios后臺接口創建express銷售總量圖實現完整項目下載項目任何問題都可在評論區,或者直接私信即可。 創建vue3.0項目 創建項目: vue create vueecharts選擇第三項:…

Java自定義IO密集型和CPU密集型線程池

文章目錄 前言線程池各類場景描述常見場景案例設計思路公共類自定義工廠類-MyThreadFactory自定義拒絕策略-RejectedExecutionHandlerFactory自定義阻塞隊列-TaskQueue(實現 核心線程->最大線程數->隊列) 場景1:CPU密集型場景思路&…

【VM】VirtualBox安裝ubuntu22.04虛擬機

閱讀本文之前,請先根據 安裝virtualbox 教程安裝virtulbox虛擬機軟件。 1.下載Ubuntu系統鏡像 打開阿里云的鏡像站點:https://developer.aliyun.com/mirror/ 找到如圖所示位置,選擇Ubuntu 22.04.3(destop-amd64)系統 Ubuntu 22.04.3(desto…

Pandas基礎08(分箱操作/時間序列/畫圖)

3.8.1 Pandas分箱操作 數據分箱(Binning) 是一種數據預處理方法,用于將連續型變量的數值范圍分割成若干個區間或“箱”(bins),將數據按照這些區間進行分類,從而轉換為離散型變量。這種方法常用…

C#,shell32 + 調用控制面板項(.Cpl)實現“新建快捷方式對話框”(全網首發)

Made By 于子軒,2025.2.2 不管是使用System.IO命名空間下的File類來創建快捷方式文件,或是使用Windows Script Host對象創建快捷方式,亦或是使用Shell32對象創建快捷方式,都對用戶很不友好,今天小編為大家帶來一種全新…

國產編輯器EverEdit - 輸出窗口

1 輸出窗口 1.1 應用場景 輸出窗口可以顯示用戶執行某些操作的結果,主要包括: 查找類:查找全部,篩選等待操作,可以把查找結果打印到輸出窗口中; 程序類:在執行外部程序時(如:命令窗…

Vue-data數據

目錄 一、Vue中的data數據是什么?二、data支持的數據類型有哪些? 一、Vue中的data數據是什么? Vue中用到的數據定義在data中。 二、data支持的數據類型有哪些? data中可以寫復雜類型的數據,渲染復雜類型數據時只要遵…

02.03 遞歸運算

使用遞歸求出 1 1/3 -1/5 1/7 - 1/9 ... 1/n的值。 1>程序代碼 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #inc…

數據分析系列--⑥RapidMiner構建決策樹(泰坦尼克號案例含數據)

一、資源下載 二、數據處理 1.導入數據 2.數據預處理 三、構建模型 1.構建決策樹 2.劃分訓練集和測試集 3.應用模型 4.結果分析 一、資源下載 點擊下載數據集 二、數據處理 1.導入數據 2.數據預處理 三、構建模型 1.構建決策樹 雖然決策樹已經構建,但對于大多數初學者或…

高階開發基礎——快速入門C++并發編程6——大作業:實現一個超級迷你的線程池

目錄 實現一個無返回的線程池 完全代碼實現 Reference 實現一個無返回的線程池 實現一個簡單的線程池非常簡單&#xff0c;我們首先聊一聊線程池的定義&#xff1a; 線程池&#xff08;Thread Pool&#xff09; 是一種并發編程的設計模式&#xff0c;用于管理和復用多個線程…

pytorch實現主成分分析 (PCA):用于數據降維和特征提取

人工智能例子匯總&#xff1a;AI常見的算法和例子-CSDN博客 使用 PyTorch 實現主成分分析&#xff08;PCA&#xff09;可以通過以下步驟進行&#xff1a; 標準化數據&#xff1a;首先&#xff0c;需要對數據進行標準化處理&#xff0c;確保每個特征的均值為 0&#xff0c;方差…

100 ,【8】 buuctf web [藍帽杯 2021]One Pointer PHP(別看)

進入靶場 沒提示&#xff0c;去看源代碼。 user.php <?php // 定義一個名為 User 的類&#xff0c;該類可用于表示用戶相關信息或執行與用戶有關的操作 class User{// 聲明一個公共屬性 $count&#xff0c;可在類的內部和外部直接訪問// 這個屬性可能用于記錄與用戶相關…