Opencv實戰(5)平滑處理與常見函數

平滑處理

Opencv實戰:
Opencv(1)讀取與圖像操作
Opencv(2)繪圖與圖像操作
Opencv(3)詳解霍夫變換
Opencv(4)詳解輪廓

文章目錄

    • 平滑處理
      • 1.均值濾波
      • 2.方框濾波
      • 3.高斯濾波
      • 4.中值濾波
      • 5.雙邊濾波
    • 常見函數
      • (1).createTrackbar()
      • (2).SetMouseCallback()

圖像的平滑處理是在盡量圖像原有信息的情況下,過濾掉圖像內部的噪聲。由于圖像平滑處理的同時通常伴隨著圖像的模糊操作,有時圖像平滑處理也稱為圖像模糊處理。使用濾波器模板確定的鄰域內像素的平均/加權平均灰度值代替圖像中每個像素的值。平滑線處理濾波器也稱均值濾波器

1.均值濾波

dst = cv2.blur(src, ksize, anchor, borderType)

2.方框濾波

dst = cv2.boxFilter(src, ddepth, ksize, anchor, normalize, borderType)

3.高斯濾波

dst = cv2.GauusianBlur(src, ksize, sigmaX, sigmaY, borderType)

4.中值濾波

dst = cv2.medianBlur(src, ksize)

5.雙邊濾波

邊緣濾波保留是一種圖像處理技術,旨在在應用濾波器時保留圖像中的邊緣信息。在圖像處理中,濾波器通常用于平滑圖像或者增強特定的圖像特征,但是濾波器也可能導致邊緣信息的模糊或丟失。通過在濾波過程中保留邊緣信息,從而在平滑圖像的同時保持圖像中的邊緣清晰度

dst = cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst, borderType)
  • d:過濾過程中每個像素鄰域的直徑范圍。如果不是正數,則函數會從參數 sigmaSpace 計算該值;

  • sigmaColor:顏色空間過濾器的 sigma 值,參數的值越大,表明該像素鄰域內有越寬廣的顏色會被混合到一起,產生較大的半等色區域;

  • sigmaSpace:坐標空間中濾波器的 sigma 值,如果該值較大,則意味著越遠的像素將相互影響,從而使更大的區域中足夠相似的顏色獲取相同的顏色。當 d>0 時,d 指定了鄰域大小且與 sigmaSpace 無關,否則 d 正比于 sigmaSpace。

一般將 sigmaSpace設置大一些,sigmaColor 設置小一些,最終呈現的效果較好。ygtr21`

常見函數

(1).createTrackbar()

C++: int createTrackbar(conststring& trackbarname, conststring& winname,int* value, int count, TrackbarCallback onChange=0,void* userdata=0);

第一個參數,const string&類型的trackbarname,表示軌跡條的名字
第二個參數,const string&類型的winname,窗口的名字
第三個參數,int* 類型的value,一個指向整型的指針,表示滑塊的位置。并且在創建時,滑塊的初始位置就是該變量當前的值。
第四個參數,int類型的count,表示滑塊可以達到的最大位置的值。滑塊最小的位置的值始終為0。
第五個參數,TrackbarCallback類型的onChange,默認值0。這是一個指向回調函數的指針,每次滑塊位置改變時,這個函數都會進行回調。并且這個函數的原型必須為void XXXX(int,void*);其中第一個參數是軌跡條的位置,第二個參數是用戶數據(看下面的第六個參數)。如果回調是NULL指針,表示沒有回調函數的調用,僅第三個參數value有變化。
第六個參數,void*類型的userdata,他也有默認值0。這個參數是用戶傳給回調函數的數據,用來處理軌跡條事件。如果使用的第三個參數value實參是全局變量的話,完全可以不去管這個userdata參數。

(2).SetMouseCallback()

 void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0)//  winname:窗口的名字//  onMouse:鼠標響應函數,回調函數。指定窗口里每次鼠標時間發生的時候,被調用的函數指針。
void on_Mouse(int event, int x, int y, int flags, void* param);//  event是 CV_EVENT_*變量之一//  x和y是鼠標指針在圖像坐標系的坐標(不是窗口坐標系) //  flags是CV_EVENT_FLAG的組合, param是用戶定義的傳遞到setMouseCallback函數調用的參數。

event 具體說明如下:

  • EVENT_MOUSEMOVE 0 //滑動

  • EVENT_LBUTTONDOWN 1 //左鍵點擊

  • EVENT_RBUTTONDOWN 2 //右鍵點擊

  • EVENT_MBUTTONDOWN 3 //中鍵點擊

  • EVENT_LBUTTONUP 4 //左鍵放開

  • EVENT_RBUTTONUP 5 //右鍵放開

  • EVENT_MBUTTONUP 6 //中鍵放開

  • EVENT_LBUTTONDBLCLK 7 //左鍵雙擊

  • EVENT_RBUTTONDBLCLK 8 //右鍵雙擊

  • EVENT_MBUTTONDBLCLK 9 //中鍵雙擊

flags 具體說明如下:

  • EVENT_FLAG_LBUTTON 1 //左鍵拖曳

  • EVENT_FLAG_RBUTTON 2 //右鍵拖曳

  • EVENT_FLAG_MBUTTON 4 //中鍵拖曳

  • EVENT_FLAG_CTRLKEY 8 //(8~15)按 Ctrl 不放

  • EVENT_FLAG_SHIFTKEY 16 //(16~31)按 Shift 不放

  • EVENT_FLAG_ALTKEY 32 //(32~39)按 Alt 不放

在這里插入圖片描述

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

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

相關文章

細數Android開發者的艱辛歷程,android零基礎

首先我們來看一下組件化項目和傳統項目的區別: 在傳統的項目里 我們通常情況下會有一個commonLib的Libary模塊和一個app的application模塊,業務中的邏輯都寫在app中各個功能模塊放到不同的包下。這樣做有以下幾個主要的缺點: 1.無論分包做的再好&…

【Linux】USB Functionfs編程:libusb接口詳解

1、USB host_app代碼注釋 #include <libusb.h> libusb頭文件,編譯時鏈接庫:libusb-1.0#define VENDOR 0x1d6b 廠商:Linux Foundation #define PRODUCT 0x0105 設備:FunctionFS Gadge

Zynq—AD9238數據采集DDR3緩存千兆以太網發送實驗(一)

ACM9238 高速雙通道ADC模塊自助服務手冊AD9238 一、實驗目的 本次實驗通過電腦上的網絡調試助手&#xff0c;將命令幀進行發送&#xff0c;然后通過ACZ7015開發板上的以太網芯片接收&#xff0c;隨后將接收到的數據轉換成命令&#xff0c;從而實現對ACM9238模塊采樣頻率、數據…

JavaScript中的new Proxy()和Object.defineProperty使用詳細,Vue2和vue3中雙向數據綁定的原理

簡介&#xff1a; Object.defineProperty() 是 JavaScript 中一個強大且常用的方法&#xff0c;用于定義對象屬性&#xff0c;允許我們精確地控制屬性的行為&#xff0c;包括讀取、寫入和刪除等操作&#xff0c;是vue2中雙向數據綁定的原理&#xff1b; new Proxy() 是ES6中一…

Tomcat布署及優化

1.Tomcat簡介 Tomcat 是 Java 語言開發的&#xff0c;Tomcat 服務器是一個免費的開放源代碼的 Web 應用服務器&#xff0c;Tomcat 屬于輕量級應用服務器&#xff0c;在中小型系統和并發訪問用戶不是很多的場合下被普遍使用&#xff0c;是開發和調試 JSP 程序的首選。一般來說&…

在實訓云平臺上配置云主機

文章目錄 零、學習目標一、實訓云升級二、實訓云登錄&#xff08;一&#xff09;登錄實訓云&#xff08;二&#xff09;切換界面語言&#xff08;三&#xff09;規劃云主機實例 三、創建網絡三、創建路由器2024-2-29更新到此四、添加接口五、創建端口六、添加安全組規則七、創建…

反相輸入放大器與生俱來的坑

我們都知道反相放大器能將輸入的信號反相放大&#xff0c;這是很基本的知識&#xff0c;學過電路的一般都知道。反相放大器的公式為Vout -Vin*Rf/Rin&#xff08;運算放大器應用匯總&#xff09;。根據已知的公式&#xff0c;能很輕松的完成設計&#xff0c;但反相放大器與生俱…

每日一類:QString類深入講解

QString類是Qt框架中的一個核心組件&#xff0c;設計用于方便、高效地處理Unicode字符串。與標準C中的字符串處理方式相比&#xff0c;QString提供了更為豐富的API&#xff0c;支持國際化&#xff0c;并且內部使用UTF-16編碼&#xff0c;能夠處理世界上幾乎所有的語言文字。 設…

【PHP進階】Rabbitmq的實際使用

RabbitMQ是一個流行的消息隊列中間件&#xff0c;它提供了可靠的消息傳遞機制。在使用RabbitMQ時&#xff0c;有幾個重要的概念需要了解&#xff1a; 消息隊列&#xff08;Message Queue&#xff09;&#xff1a;RabbitMQ中的核心概念之一。它是消息的緩沖區&#xff0c;用于存…

容器安全工具使用指南:保障容器環境安全的利器

隨著容器技術的廣泛應用,容器安全成為關注的焦點。本文將深入介紹幾個流行的容器安全工具,我們將深入了解容器安全領域的Top 10工具,包括Trivy、veinmind-tools、Clair、Docker Bench for Security、Sysdig Falco、neuVector等,詳細講解它們的功能、原理、安裝和使用方法,…

【精簡版】Ubuntu/Linux Anaconda 命令行終端安裝

網上重復內容很多&#xff0c;大都啰里啰嗦&#xff0c;特作此筆記。 【精簡版】Ubuntu/Linux Anaconda 命令行安裝 1 下載安裝包1.1 尋找適配版本安裝包1.2 下載 2 運行安裝程序3 設置安裝路徑4 添加環境變量并運行4.1 環境變量4.2 運行 5 驗證安裝成功感謝及參考博文 1 下載…

js ES6判斷字符串是否以某個字符串開頭或者結尾startsWith、endsWith

1.前言 startsWith&#xff1a;startsWith方法用于檢查字符串是否以指定的字符串開頭。 endsWith&#xff1a;endsWith方法用于檢查字符串是否以指定的字符串結尾。 2.用法示例 const str Hello, world!;console.log(str.startsWith(Hello)); // true console.log(str.starts…

音頻提取使用什么方法?視頻提取音頻

在數字技術與多媒體日益普及的今天&#xff0c;音頻提取已成為一個常見且重要的任務。無論是為了制作視頻、編輯音樂&#xff0c;還是進行語音識別和分析&#xff0c;我們都需要從原始材料中提取音頻。那么&#xff0c;音頻提取通常使用什么方法呢&#xff1f; 1. 使用專業的音…

【Git教程】(七)變基與揀取 —— 變基操作的概念、適用場景及其實現方式,揀取操作的實現 ~

Git教程 變基與揀取 1?? 工作原理&#xff1a;復制提交2?? 避免“鉆石鏈”3?? 什么情況下會遇到沖突4?? 移植分支5?? 執行變基后原提交的情況6?? 提交的原件與副本存在于同一版本庫中所帶來的問題7?? 撿取&#x1f33e; 總結 通常&#xff0c; 一段提交歷史中往…

編寫科技項目驗收測試報告需要注意什么?第三方驗收測試多少錢?

科技項目驗收測試是一個非常重要的環節&#xff0c;它對于確保科技項目的質量和可用性起著至關重要的作用。在項目完成后&#xff0c;進行科技項目驗收測試可以評估項目的功能、性能和可靠性等方面&#xff0c;并生成科技項目驗收測試報告&#xff0c;以提供給項目的相關方參考…

第十六屆“中關村青聯杯”全國研究生數學建模競賽-E題:全球變暖氣候預測分析(續)

目錄 五、問題二:模型的建立與求解 5.1 問題分析 5.2 數據獲取及處理 5.2.1 數據獲取

git commit 的規范

今天在一個項目中提交git時報了下面的錯誤&#xff1a;subject may not be empty [subject-empty] type may not be empty [type-empty]&#xff0c;上網查閱了一些資料&#xff0c;發現這種一種規范約束&#xff0c;用下面的命令我又重新提交了一次 git commit -m "feat…

SpringFramework實戰指南(七)

SpringFramework實戰指南(七) 4.5 三種配置方式總結4.5.1 XML方式配置總結4.5.2 XML+注解方式配置總結4.5.3 完全注解方式配置總結4.6 整合Spring5-Test5搭建測試環境4.5 三種配置方式總結 4.5.1 XML方式配置總結 所有內容寫到xml格式配置文件中聲明bean通過<bean標簽<…

Docker技術概論(2):Docker環境的搭建

Docker技術概論&#xff08;2&#xff09; Docker環境的搭建 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blo…

自動采集API壁紙系統源碼自適應手機端

HTML5響應式自動采集API壁紙系統源碼自適應手機端 瀑布流加載 源碼下載&#xff1a;https://www.qqmu.com/2303.html