日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机视觉之OpenCV教程 ---Mat类基础(一)

發布時間:2024/4/30 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机视觉之OpenCV教程 ---Mat类基础(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器視覺之OpenCV教程圖像容器Mat類基礎一(一)

零、OpenCV概述

  • 基本上在機器識別的領域 ,都有OpenCV的身影 。
  • OpenCV中基本上包含了所有的機器視覺所用到的算法 , 即使沒有也能利用OpenCV平臺快速搭建出來。
  • OpenCV核心模塊(Core Module)的主要內容
  • Mat基本圖像容器
  • 掃描圖像的幾種方式
  • 在圖像上進行掩膜操作
  • 圖像的基本操作
  • 圖像的疊加 混合操作
  • 改變 圖像對比度和亮度
  • 基本繪圖函數使用
  • 隨機數以及本文內容的生成
  • 離散傅里葉(DFT)變換
  • XML和YML格式的IO
  • 如何與OpenCv1.x版本共同使用
  • 一、Mat基本圖像容器

  • 數字圖像在計算機中是以二維矩陣的形式 存放的
  • Mat的基本結構
  • Matrix Header: 矩陣頭 , 占用固定大小的內存 , 描述了矩陣的基本信息 , 如:矩陣的長寬 、 數據指針的位置 , 數據類型 , 通道數量 。。。。
  • Matrix Date : 指向矩陣數據(像素值)的指針 , 占用內存依據圖像的大小以及圖像數據類型和通道等變化 。
  • 二、Mat類淺復制

  • 圖像處理最顯著的特點就是計算量大 , 占用內存多 , 所以盡量避免圖像的深度拷貝 。
  • 為了避免大規模內存數據塊的深度拷貝操作 , OpenCV采用了引用計數 策略 , 此策略的核心思想是每一個Mat對象都有自己的頭 , 但是不同的Mat對象的數據指針可以指向同一塊區域并對其進行操作。 此時拷貝構造函數和 賦值操作 只是重新開辟一個矩陣頭的內存區域 , 而不再申請數據區的內存 。

    Mat A , C;//創建兩個矩陣頭
    A = imread(src);//讀取圖片 , 為A獨到的數據開辟內存區
    Mat B(A);//使用拷貝構造函數創建一個新的Mat對象B
    C = A ; //使用賦值操作符把A對象復制給C
    此時 A 、 B、 C三個Mat對象的矩陣頭都指向了同一個數據區 。

  • ROI: 感興趣區域

  • 你可以創建一個新的矩陣頭, 指向另一個矩陣的一個子集 ,由于這是淺復制 ,, 這個新的矩陣頭對ROI子集的任何修改都會直接修改源數據 。
  • 指定ROI的兩種方法:

    Mat D(A , Rect(x , y , width , height));//使用矩形指定ROI的區域 Mat E = A(Range(a,b) , Range(c , d));//a、b用于指定哪行到哪行 , c、d用于指定哪列到哪列 。 使用Range限定行列的邊界指定ROI
  • 三、深層拷貝

  • clone函數: Mat B = A.clone();
  • copyTo函數: Mat C ; A.copyTo(A);
  • A、B、C 的數據區獨立存在 , 互不影響 。
  • 總結

    以上是生活随笔為你收集整理的计算机视觉之OpenCV教程 ---Mat类基础(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。