opencv學習總結

Mat類學習

Opencv中的數據類型與我們常用的數據類型的一一對應關系:Mat_<uchar>->CV_8U;Mat_<char>->CV_8S;Mat_<short>->CV_16S;Mat_<ushort>->CV_16U;Mat_<int>->CV_32S;Mat_<float>->CV_32F;Mat_<double>->CV_64F。

Mat類中depth與type屬性的理解:depth是用來度量每一個像素中每一個通道的精度,但它本身與圖像的通道數無關。depth數值越大,精度越高。type是矩陣的類型,包含矩陣中元素的類型以及通道數信息,type的命名格式為CV_(位數)+(數據類型)+(通道數)。

Mat類中data屬性理解:uchar類型的指針,指向Mat數據矩陣的首地址。

Mat類中可以訪問像素值的函數:1)ptr函數:該函數作用是可以訪問任意一行像素的首地址,格式是image.ptr<數據類型,一般為uchar>(指定的行數);2)at函數:該函數作用是可以訪問圖像中的任意一個像素,格式有兩種,單通道是image.at(i,j);三通道格式如下:藍色通道:image.at(i,j)[0];綠色通道:image.at(i,j)[1];紅色通道:image.at(i,j)[2]。

定義int數據類型的矩陣A,用at函數以double型進行訪問矩陣A的元素,這是不可以的。定義double數據類型的矩陣A,用at函數以int型進行訪問矩陣A的元素,這也是不可以的。因為在定義矩陣的時候,已經確定好了矩陣的元素類型,分配好了相應的矩陣內存,以另外的數據類型格式去訪問的話,類型不匹配。如果要轉換的話,需要在前面加上強制類型轉換符。

Mat是一個類,由兩個數據部分組成:矩陣頭(包含矩陣尺寸、存儲方法、存儲地址等信息)和一個指向存儲所有像素值的矩陣(根據所選存儲方法的不同,矩陣可以是不同的維數)的指針。

Mat類對圖像內存的分配:一般來說,賦值運算符和拷貝構造函數(構造函數)只復制信息頭,不復制整個矩陣,而使用函數clone()或者copyTo()是來復制一幅圖像的矩陣。

Mat類定義對象常用的幾種形式:
1.使用Mat()構造函數
常用的幾種構造函數:1)Mat(int rows,int cols,int type);2)Mat(Size size,int type);3)Mat(int rows,int cols,int type,const Scalar& s);4)Mat(Size size,int type,const Scalar& s);

2.利用create()函數對Mat類進行初始化工作
舉例:Mat B; B.Create(2,2,2,CV_8UC1);

3.利用Matlab式的初始化方式:zeros(),ones(),eye()
舉例:
1)Mat E=Mat::eye(4,4,CV_64F);
2)Mat O=Mat:ones(2,2,CV_32F);
3)Mat Z=Mat::zeros(3,3,CV_8UC1);

4.對小矩陣使用逗號分隔式初始化函數
Mat C=(Mat_(3,3,)<<0,-1,0,-1,5,-1,0,-1,0);

5.為已存在的對象創建新信息頭(使用成員函數clone()和copyTo?

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

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

相關文章

Sentinel鏈路流控模式失效的解決方法

解決方法 1、在pom.xml中增加sentinel-web-servlet的依賴&#xff0c;我使用的版本是1.7.1 <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-web-servlet</artifactId> </dependency>2、在項目中添加一個FilterCon…

uniapp應用如何實現傳感器數據采集和分析

UniApp是一種跨平臺的應用開發框架&#xff0c;它支持在同一份代碼中同時開發iOS、Android、H5等多個平臺的應用。在UniApp中實現傳感器數據采集和分析的過程可以分為以下幾個步驟&#xff1a; 引入相關插件或庫 UniApp通過插件或庫的形式擴展功能。對于傳感器數據采集和分析&…

1679. K 和數對的最大數目

1679. K 和數對的最大數目 題目鏈接&#xff1a;1679. K 和數對的最大數目 代碼如下&#xff1a; class Solution { public://雙指針法int maxOperations(vector<int>& nums, int k) {if(nums.size()<1) return 0;sort(nums.begin(),nums.end());int res0;int…

MySQL 9.0 GA 來了!

2024 年 7 月 2 日&#xff0c;MySQL 9.0 GA 版本正式發布。還記得 MySQL 8.0 版本正式發布于 2018 年 4 月 19 日&#xff0c;中間經過了 6 年之久&#xff0c;MySQL 官方終于發布了大版本號變更得 9.0 版本&#xff0c;接下來由我給大家介紹 MySQL 在 9.0 版本中有哪些新的變…

C++學習筆記---POCO庫

在Windows系統中安裝POCO 1&#xff09;安裝OpenSSL POCO編譯安裝依賴OpenSSL&#xff0c;如果未安裝OpenSSL則應該先安裝OpenSSL。 假設將OpenSSL安裝在C:\OpenSSL-Win64&#xff0c;將C:\OpenSSL-Win64、C:\OpenSSL-Win64\lib添加到PATH環境變量中2&#xff09;安裝POCO 將p…

C++11新特性【下】{lambda表達式、可變模板參數、包裝器}

一、lambda表達式 在C98中&#xff0c;如果想要對一個數據集合中的元素進行排序&#xff0c;可以使用std::sort方法。如果待排序元素為自定義類型&#xff0c;需要用戶定義排序時的比較規則&#xff0c;隨著C語法的發展&#xff0c;人們開始覺得上面的寫法太復雜了&#xff0c…

深入理解Git:checkout的本質與原理深度解析

在Git的版本控制世界中&#xff0c;checkout是一個極其重要且功能豐富的命令&#xff0c;它貫穿于日常開發的各個環節。然而&#xff0c;隨著Git版本的更新迭代&#xff0c;checkout的功能逐漸被新的命令如switch和restore所分解&#xff0c;但這并不妨礙我們深入理解其本質與原…

#練習 #綜合 LinuxC高級

一、選擇題 1.常見的Linux發行版本有很多&#xff0c;下面不是Linux發行版本的是( ) A. Red Hat Linux B. Ubuntu Linux C.X Window D.SuSE Linux 答案 2.下面不是對Linux操作系統特點描述的是( ) A.良好的可移植性 B.單用戶 C.多用戶 D.多任務 答案…

1-訊飛星火大模型API調用示例解析

1官網鏈接 比賽官網&#xff1a;2024 iFLYTEK A.I.開發者大賽-訊飛開放平臺 (xfyun.cn)&#xff1b;控制臺官網&#xff1a;控制臺-訊飛開放平臺 (xfyun.cn)&#xff1b; 2星火模型python調用示例 示例鏈接&#xff1a;https://xfyun-doc.xfyun.cn/lc-sp-PythonDemo-17163704…

了解MySQL【事務】的功能:確保數據完整性的關鍵技術

在數據庫管理中&#xff0c;事務是確保數據完整性和一致性的核心機制。特別是對MySQL這樣廣泛應用的開源數據庫系統&#xff0c;掌握事務的使用至關重要。在這篇文章中&#xff0c;我們將全面探討MySQL事務的工作原理、ACID屬性、隔離級別以及最佳實踐&#xff0c;從而幫助開發…

寶塔Linux面板配置環境 + 創建站點

一、安裝 &#xff08;1&#xff09;進入寶塔官網 https://www.bt.cn/new/index.html &#xff08;2&#xff09;點擊“ 立即免費安裝 ”&#xff0c;選擇 Centos安裝腳本 &#xff08;3&#xff09;進入 ssh 輸入以下命令安裝寶塔 yum install -y wget && wget -O …

實驗三 SQL Server SSMS工具添加數據

1、打開ecommerce數據庫&#xff0c;向表中分別錄入以下數據信息 &#xff08;1&#xff09;商品類別表category catno catname describe 101 手機 各種品牌、型號手機 201 激光打印機 各種激光打印機 202 噴墨打印機 各種噴墨打印機 301 平板電腦 各種平板電腦…

Python后端面試題

1. 文件操作w和r的區別 在Python中&#xff0c;文件操作模式中的w和r都表示對文件的讀寫操作&#xff0c;但它們在打開文件時的行為有所不同&#xff1a; r模式&#xff1a; 讀寫&#xff1a;這種模式允許你同時讀取和寫入文件。文件必須已經存在&#xff0c;否則會拋出一個Fi…

思看科技募資額驟降:對賭壓力下巨額分紅,還購買 7項商業房產

《港灣商業觀察》施子夫 6月11日&#xff0c;證監會網站披露思看科技&#xff08;杭州&#xff09;股份有限公司&#xff08;以下簡稱&#xff0c;思看科技&#xff09;的首輪審核問詢函回復意見并更新2023年財務數據&#xff0c;繼續推進上市進程。 公開信息顯示&#xff0c…

低空經濟背景下的無人機人才培養

無人機作為低空經濟的重要組成部分&#xff0c;其技術的進步和應用的拓展直接推動了低空經濟的快速發展。無人機以其高效、靈活、低成本的特點&#xff0c;在多個領域發揮了重要作用&#xff0c;成為推動低空經濟發展的重要力量。 無人機人才培養的重要性 隨著無人機應用的不…

深度之眼(二十九)——神經網絡基礎知識(四)-循環神經網絡

文章目錄 一、 學習目標二、序列數據三、語言模型四、循環神經網絡4.1 RNN的反向傳播 五、門控循環單元-GNU5.1 候選隱藏狀態 六、長短期記憶網絡-LSTM七、回顧 一、 學習目標 二、序列數據 序列數據是常見的數據類型&#xff0c;前后數據通常具有關聯性 三、語言模型 綜合…

【技術雜談】如何訪問Github | 解決無法連接Github的問題

訪問網頁的過程 什么是域名&#xff1f;什么是IP地址&#xff1f;- 域名是網站的名稱。 - IP地址是服務器在互聯網上的邏輯地址。域名往往是固定的&#xff0c;但是IP地址很有可能是會改變的。計算機通過Host文件檢查本地緩存是否有域名對應IP地址 Host文件路徑 C:\Windows\Sy…

C#反射基本應用

1、反射 反射是.NET Framework的一個特性&#xff0c;它允許在運行時獲取類型的信息以及動態創建對象&#xff0c;調用方法&#xff0c;以及訪問字段和屬性。 2、代碼 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy…

Node.js path模塊

在 Node.js 中&#xff0c;path 模塊用于處理和轉換文件路徑。以下是一些常用的 path 模塊方法及其說明&#xff1a; path.basename(path[, ext]) 返回路徑中的最后一部分&#xff0c;即文件名。示例&#xff1a;const path require(path); console.log(path.basename(/foo/ba…

ShardingSphere分庫分表+讀寫分離

ShardingSphere 是一個開源的分布式數據庫中間件&#xff0c;它支持分庫分表和讀寫分離的功能&#xff0c;可以有效地提高數據庫的并發處理能力和數據存儲能力。以下是關于 ShardingSphere 分庫分表和讀寫分離的一些關鍵點&#xff1a; 1. **讀寫分離**&#xff1a;在 Shardin…