opencv 迭代器算法_第1頁
opencv 迭代器算法_第2頁
opencv 迭代器算法_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、采樣、差值和幾何變換InitLinelterator初始化線段迭代器int cvInitLineIterator( const CvArr* image, CvPoint ptl, CvPoint pt2, CvLinelterator* line_iterator, int connectivity=8 );image帶采線段的輸入圖像.ptl線段起始點pt2線段結束點line_iterator指向線段迭代器狀態結構的指針connectivity被掃描線段的連通數,4或8.left_to_right:標志值,指出掃描直線是從pt1和pt2外面最左邊的點掃描到最右邊 的點(left_to_ri

2、ght乏0),還是按照指定的順序,從pt1到pt2(left_to_right=0)。函數 cvInitLineIterator初始化線段迭代器,并返回兩點之間的象素點數目。兩個點必須在圖像內。當迭代器初始化后,連接兩點的光柵線上所有點,都可以連續通 過調用CV_NEXT_LINE_POINT來得到。線段上的點是使用4 一連通或8一連通 利用Bresenham算法逐點計算的。例子:使用線段迭代器計算彩色線上象素值的和CvScalar sum_line_pixels( IplImage* image, CvPoint pt1, CvPoint pt2 )CvLineIterator iterat

3、or;int blue_sum = 0, green_sum = 0, red_sum = 0;int count = cvInitLineIterator( image, pt1, pt2, &iterator, 8 );for( int i = 0; i imageData);y = offset/image-widthStep;x = (offset y*image-widthStep)/(3*sizeof(uchar) /* size of pixel */);printf(%d,%d)n, x, y );return cvScalar( blue_sum, green_sum, re

4、d_sum );取到像素值后,需返回此時的點的坐標。像素值已通過iterator.prr取得offset每一個輪廓點的偏移量,當輪廓是從圖像ROI中提取出來的時候,使用 偏移量有用,因為可以從整個圖像上下文來對輪廓做分析。cvSampleLine :對直線采樣;SampleLine將圖像上某一光柵線上的像素數據讀入緩沖區int cvSampleLine( const CvArr* image, CvPoint ptl, CvPoint pt2, void* buffer, int connectivity=8 );image輸入圖像ptl光柵線段的起點pt2光柵線段的終點buffer存儲線段點

5、的緩存區,必須有足夠大小來存儲點max( Ipt2.x-pt1.xl+1, Ipt2.y-pt1.yl+1 ) : 8一 連通情況下,或者 Ipt2.x-pt1.xl+lpt2.y-pt1.yl+1 : 4一連通 情況下.connectivity線段的連通方式,4 or 8.函數cvSampleLine實現了線段迭代器的一個特殊應用。它讀取由pt1和pt2 兩點確定的線段上的所有圖像點,包括終點,并存儲到緩存中。IplImage* img-widthStep表示存儲一行像素所需的字節數,widthStep必須是4 的倍數。對于,一個8u圖像每個像素正好一個字節,如果width為3,那一行只需3

6、個 字節,這樣的情況會自動加一個字節補齊。這個圖像的一行仍然需要4個字節, 只使用前3個,最后一個空在那兒不用。例如:4*3的8u圖像的imageData數據大小為4*4=16字節;如果是32F的圖像,一個像素要4個字節,那么widthStep=width*4; 在OpenCV里邊,widthStep必須是4的倍數,從而實現字節對齊,有利于提高 運算速度。如果8U單通道圖像寬度為3,那么widthStep是4,加一個字節補齊。這個圖像 的一行需要4個字節,只使用前3個,最后一個空著。也就是一個寬3高3的圖 像的imageData數據大小為4*3=12字節。2.使用迭代器遍歷圖像cv:Mat同樣有標準模板庫(STL),可以使用迭代器訪問數據。/ get iteratorscv:Mat_:iterator it= image.begin();cv:Mat_:iterator itend= image.end();for ( ; it!= itend; +it) 處理每個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論