今天剛看了乙個公開課,學到了更多的訪問畫素的方法。
1、借助at<>()模板函式訪問畫素
2、借助迭代器訪問
3、借助ptr<>()函式訪問
4、借助mat物件的step陣列屬性進行訪問(不推薦容易越界)
// op_pixels.cpp: 採用四種方法訪問畫素
//#include "stdafx.h"
#include#include#include#includeusing namespace std;
using namespace cv;
int main()
} endtime = clock();
cout << "使用at()方法所花費的時間為:" << (double)(endtime - starttime) / clocks_per_sec << "秒" << endl;
imshow("at方法生成的圓", m);
//採用迭代器的方式來訪問,由於沒有i,j因此沒有畫圓,只是做了一些簡單的變換
starttime = clock();
rng rng; //opencv提供的乙個生成隨機數的類
mat_::iterator itbegin, itend;
for (itbegin = n.begin(), itend = n.end(); itbegin != itend; itbegin++)
endtime = clock();
cout << "使用迭代器方法所花費的時間為:" << (double)(endtime - starttime) / clocks_per_sec << "秒" << endl;
imshow("迭代器訪問生成的圖", n);
//採用c陣列風格訪問影象元素,這部分也是畫乙個圓
starttime = clock();
for (int i = 0; i < rownum; i++)
}} endtime = clock();
cout << "使用類似c陣列方法所花費的時間為:" << (double)(endtime - starttime) / clocks_per_sec << "秒" << endl;
imshow("採用c陣列風格訪問影象生成的圓", l);
//採用指標計算方式進行訪問,但是不推薦用這種方式,很容易會越界產生錯誤
for(int i=0;i
執行結果截圖如下:令我意外的是使用迭代器時間反而比使用at<>()方法時間還要長
獲取元素的幾種方法
document.getelementbyid id document.getelementbytagname 標籤名 document.getelementbyclassname classname 獲取父節點,元素物件.parentnode 獲取子元素,元素物件.children 獲取下乙個兄弟...
JQ插入元素的幾種方法
jquery prepend 方法 p prepend hellow world jquery prepend 在被選中元素的 開始 位置插入內容 jquery prependto 方法 hello world prependto p jquery prependto 方法 hello world ...
DOM獲取元素的幾種方法
dom根據id獲取元素 var div document.getelementbyid main console.log div 獲取到的資料型別 htmldivelement,物件都是有型別的 htmldivelement htmlelement element node eventtarget ...