女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV的Mat數(shù)據(jù)格式及其遍歷的程序資料說明

C語言專家集中營(yíng) ? 來源:未知 ? 2019-02-17 09:42 ? 次閱讀

在opencv早期的版本中,圖像通過一個(gè)叫做IplImage的結(jié)構(gòu)(structure)存儲(chǔ)在內(nèi)存中。由于C語言對(duì)程序員高度的信任,因此它需要手動(dòng)地對(duì)內(nèi)存進(jìn)行管理,比如內(nèi)存的分配和回收,這在大型程序設(shè)計(jì)中是比較麻煩的。幸運(yùn)地是,C++可以很好地幫助程序員管理內(nèi)存,因此opencv2.0后就引入了C++接口。但是C++也有缺點(diǎn),比如說目前大部分的嵌入式系統(tǒng)只支持C語言,在這些平臺(tái)上開發(fā)opencv程序的話用C++就不是很好。

cv::Mat是一個(gè)C++類,包含兩部分:1)Matrix header,包括矩陣的size、存儲(chǔ)方式、矩陣的存儲(chǔ)地址等信息;2)指向Marix的指針ji。由于圖像處理算法通常都是計(jì)算密集型算法,出于程序速度上的考慮,opencv的設(shè)計(jì)應(yīng)盡可能地避免拷貝大圖像,為了解決這個(gè)問題,opencv使用了引用計(jì)數(shù)機(jī)制(reference counter system)【python也使用了這個(gè)機(jī)制,參考之前的博客】。簡(jiǎn)單來說,滅個(gè)Mat對(duì)象都有自己的header,在進(jìn)行copy運(yùn)算時(shí),只有headers和指向矩陣的指針會(huì)被拷貝,而矩陣本身不會(huì)被拷貝,舉個(gè)栗子:

上面的三個(gè)Mat對(duì)象srcImg,dstImg,C最終都只想同一個(gè)數(shù)據(jù)矩陣,雖然它們的headers是不同的。對(duì)它們其中的任意一個(gè)進(jìn)行修改都會(huì)影響另外兩個(gè)對(duì)象。上面程序的運(yùn)行結(jié)果如圖:

當(dāng)然,如果想拷貝矩陣本身也是有辦法的,opencv提供了兩個(gè)方法:clone()和copyTo():

Mat F = A.clone();

Mat G;

A.copyTo(G);

最后總結(jié)一下:

1)opencv函數(shù)中輸出圖像的內(nèi)存是自動(dòng)分配的;

2)賦值運(yùn)算和拷貝構(gòu)造函數(shù)只是拷貝了header,我們可以把這種拷貝理解為一種淺拷貝;

3)如果想進(jìn)行深拷貝,即拷貝矩陣本身的數(shù)據(jù),可以采用clone()或copyTo()函數(shù)。

對(duì)1和2的理解可以很重要,這可以解釋下面這個(gè)程序:

其運(yùn)行結(jié)果為:

關(guān)于如何創(chuàng)建一個(gè)Mat對(duì)象,最好的辦法就是看mat.hpp,因?yàn)閷?shí)在有太多了...,這里在介紹一下opencv里面的一下data

type,比如說CV_8UC3,CV_32FC3,CV_32F是什么意思:

CV_[the number of bits per item][signed or unsigned][Type prefix]C[The channel number]

最后是一個(gè)大頭部分:介紹如何遍歷cv::Mat。

Q1:圖像在Mat中是如何存儲(chǔ)的呢?

通常我們有足夠多的內(nèi)存,使得上面這個(gè)矩陣可以一行接著一行地連續(xù)存儲(chǔ),具體是不是呢,可以用isContinous()函數(shù)來判斷。因此最高效的遍歷方法還是采用指針(還有迭代器方法):

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2117

    瀏覽量

    74770
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42414
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4823

    瀏覽量

    86154

原文標(biāo)題:opencv——Mat數(shù)據(jù)格式及其遍歷

文章出處:【微信號(hào):C_Expert,微信公眾號(hào):C語言專家集中營(yíng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    VTHD這個(gè)寄存器的數(shù)據(jù)格式是?3.21帶符號(hào)格式是什么格式

    VTHD這個(gè)寄存器的數(shù)據(jù)格式是?3.21帶符號(hào)格式是什么格式?沒有找到相關(guān)說明,那位高人給兄弟指點(diǎn)下,非常感謝!
    發(fā)表于 12-27 07:56

    標(biāo)準(zhǔn)數(shù)據(jù)格式實(shí)用程序快速參考

    標(biāo)準(zhǔn)數(shù)據(jù)格式實(shí)用程序快速參考
    發(fā)表于 01-22 11:32

    標(biāo)準(zhǔn)數(shù)據(jù)格式實(shí)用程序

    標(biāo)準(zhǔn)數(shù)據(jù)格式實(shí)用程序
    發(fā)表于 01-23 17:02

    串口的數(shù)據(jù)格式

    文章目錄一.前言二.串口數(shù)據(jù)的發(fā)送與接收三.串口波特率四.串口的數(shù)據(jù)格式(1)起始位(2)數(shù)據(jù)位(1)奇偶檢驗(yàn)位(1)停止位五.物理接口的形式六.TTL、RS232、RS485電平標(biāo)準(zhǔn)六.九針串口
    發(fā)表于 08-06 07:28

    數(shù)據(jù)格式,計(jì)算機(jī)中數(shù)據(jù)格式詳細(xì)介紹

    數(shù)據(jù)格式,計(jì)算機(jī)中數(shù)據(jù)格式詳細(xì)介紹    計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種,一是定點(diǎn)格式,二是浮點(diǎn)格式
    發(fā)表于 04-13 11:36 ?3841次閱讀

    gps數(shù)據(jù)格式含義說明

    本內(nèi)容介紹了gps數(shù)據(jù)格式的含義,給出了GPS輸出的是NMEA-0183的數(shù)據(jù)格式,GPS固定數(shù)據(jù)輸出語句($GPGGA)
    發(fā)表于 12-19 14:57 ?1.3w次閱讀

    遍歷圖像像素的14種方法_OpenCV2版書本配套示例程序24

    遍歷圖像像素的14種方法_OpenCV2版書本配套示例程序24,來自一本國(guó)外OpenCV2書籍的示例-遍歷圖像像素的14種方法。
    發(fā)表于 06-06 15:20 ?0次下載

    opencv中三種常見數(shù)據(jù)容器:Mat,cvMat和IplImage及它們編程顯示圖像的差異

    IplImage, CvMat, Mat 的關(guān)系opencv中常見的與圖像操作有關(guān)的數(shù)據(jù)容器有Mat,cvMat和IplImage,這三種類型都可以代表和顯示圖像,但是,
    發(fā)表于 11-25 13:18 ?6654次閱讀

    java生成json格式數(shù)據(jù) 和 java遍歷json格式數(shù)據(jù)

    本文檔內(nèi)容介紹了基于java生成json格式數(shù)據(jù) 和 java遍歷json格式數(shù)據(jù),供參考
    發(fā)表于 03-19 15:04 ?0次下載

    OPENCV數(shù)據(jù)容器之CVMAT 、MAT、IplImage

    之前的cvMat和lplImage,相比之下Mat最大的好處就是能夠更加方便的進(jìn)行內(nèi)存管理,不再需要程序員手動(dòng)管理內(nèi)存的釋放。opencv2.3中提到Mat是一個(gè)多維的密集
    發(fā)表于 06-15 18:36 ?454次閱讀

    TPC TP協(xié)議族簡(jiǎn)單解讀及網(wǎng)絡(luò)數(shù)據(jù)格式及封裝和解包的資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是TPC TP協(xié)議族簡(jiǎn)單解讀及網(wǎng)絡(luò)數(shù)據(jù)格式及封裝和解包的資料概述。
    發(fā)表于 04-24 18:30 ?1次下載
    TPC TP協(xié)議族簡(jiǎn)單解讀及網(wǎng)絡(luò)<b class='flag-5'>數(shù)據(jù)格式</b>及封裝和解包的<b class='flag-5'>資料</b>概述

    如何使用OpenCV訪問Mat圖像中每個(gè)像素的值

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用OpenCV訪問Mat圖像中每個(gè)像素的值
    發(fā)表于 11-26 16:13 ?4次下載

    總結(jié)一下OpenCV遍歷圖像的幾種方法

    在圖形處理中,遍歷每個(gè)像素點(diǎn)是最基本的功能,是做算法的基礎(chǔ),這篇文章來總結(jié)一下OpenCV遍歷圖像的幾種方法。
    的頭像 發(fā)表于 01-18 15:08 ?1916次閱讀

    串口通訊的基本概念、數(shù)據(jù)格式

    本文介紹了串口通訊的基本概念、數(shù)據(jù)格式、通訊方式、典型的串口通訊標(biāo)準(zhǔn)等內(nèi)容。
    的頭像 發(fā)表于 04-23 11:13 ?6335次閱讀
    串口通訊的基本概念、<b class='flag-5'>數(shù)據(jù)格式</b>

    如何實(shí)現(xiàn)PIL和OpenCV之間圖像數(shù)據(jù)的轉(zhuǎn)換呢?

    PIL圖像數(shù)據(jù)格式轉(zhuǎn)換成OpenCV圖像數(shù)據(jù)格式
    的頭像 發(fā)表于 02-25 13:43 ?1534次閱讀