成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

python接口與C語言功能不同之處

開發 后端
python接口功能的類似功能的介紹其中包括迭代訪問、切片方式、如果你對python接口功能想有所了解的話,你可以瀏覽以下文章,會對你有所幫助。

在正常情況下, OpenCV的python接口和C語言接口基本一致. 但是, 對于python接口實現比較困難的地方, 一些函數和結構體可能會有不同. 下面的描述就是有關此內容的詳細介紹。希望會對你有所幫助。

函數接口也盡量保持和C語言一致. 最大的差異是在函數通過參數來返回值的時候. 由于python中有些基本的參數都不可改變的, 因此代替的方法是一次返回多個值. 同樣, 大部分的結構和C語言中也有相似的功能, 但是語法可能有些不同. #t#

下面描述比較重要的差異, 具體的細節可以參考python接口的代碼.

沒有IplImage

最大的差異是python接口中沒有IplImage! 這主要是為了避免SWIG 在處理IplImage中隱含共享的不足. 以下是具體的替代方法:

原來返回IplImage的函數, 現在返回CvMat 原來讀IplImage改為讀CvMat ,CvMat中沒有的IplImage屬性被添加以支持IplImage, 例如height, width, depth, imageDataSize等. ROI和COI相關函數被禁止使用. 不過用戶可以用cvGetSubRect/cvSplit/cvMerge來實現類似的功能.

迭代訪問

CvMat擴展了python中的2個基本方法__iter__ 和 __getitem__, 來支持元素的簡單訪問.

通過行的方式迭代

  1. <python>x = cvCreateMat(m, n, type) for row in x:   
  2.  
  3.  # row is same as that returned by cvGetRowpython> 
  4.  

通過列的方式迭代

  1. <python>for col in x.colrange():   
  2.  # col is same as that returned by cvGetColpython> 

切片方式

 獲取一行

  1. <python>row = x[i]python>   
  2.  

獲取一列

  1. <python>col = x[:, i]python>  

獲取一個區域

  1. <python>slice = x[0:10, 0:10]python>   
  2.  

獲取一個元素

  1. <python>elem = x[i, j]   
  2.  
  3. or   
  4. elem = x[i][j]   
  5.  
  6. or if x is a vector   
  7. elem = x[i]python>   
  8.  

同樣的方法可以用來修改元素

  1. <python># x and y are CvMat's x[0:10, 0:5] = y[10:20, 1:6] x[i, j]
  2.  = 1; x[:, :] = 1; x[:, :] = cvScalar(1); x[0:10, i]
  3.  = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]python>   
  4.  

#p#

CvMatND

暫時還不支持. 如果您有興趣自己實現的話, 請聯系RomanStanchak.

CvSeq
python中訪問CvSeq的代碼:

  1. <python>num_contours, contours = cv.cvFindContours(...)   
  2.  
  3. hrange iterates through h_next element   
  4. for contour in contours.hrange():   
  5.  
  6.    # contour is a CvSeq of points  
  7.    for pt in contour:  
  8.        print pt  
  9.    # alternately  
  10.    for pt in contour.vrange():  
  11.        print pt  
  12.    # alternately  
  13.    for i in range(contour.total):  
  14.        print contour[i]python> 
  15.  

交互命令行編程

python的最大優點是可以在交互命令行中開發程序. 交互shell編程和Matlab類似. 以下在命令行中顯示一副圖像的代碼:

  1. <python>from opencv.cv import * from opencv.highgui import *
  2.  cvStartWindowThread() cvNamedWindow("win") im
  3.  = cvLoadImage("pics/airplane.jpg") cvShowImage("win", im)python>   
  4.  

需要注意的是cvStartWindowThread函數, 它目前只支持linux系統. cvStartWindowThread 函數的目的是代替cvWaitKey()來實現窗口的自動刷新. 去掉cvWaitKey()函數之后, 程序的輸入將不受cvWaitKey阻塞, 更便于shell交互.

Matlab語法

熟悉Matlab或SciPy的朋友, 可以更關注matlab_syntax模塊. 該模塊采用了和 Matlab/SciPy 類似的方法來創建數組. 很多情況下, 這比用OpenCV的標準函數更加便捷. 切換行號顯示

  1. <python>from opencv.cv import * from opencv.highgui import 
  2. * from opencv.matlab_syntax import * cvStartWindowThread() im = imread("pics/airplane.jpg") imshow(im)python>   
  3.  
責任編輯:佚名
相關推薦

2009-08-20 10:39:00

Java與C#的不同之

2010-02-06 09:31:42

C++函數對象

2012-08-23 13:36:27

2012-08-31 11:21:12

云計算大數據

2009-12-15 18:47:56

Ruby框架OG

2010-04-20 16:07:25

Oracle DRCP

2010-02-04 09:26:23

C++模板函數重載

2021-03-09 16:38:48

加密貨幣比特幣貨幣

2010-02-03 09:52:52

C++指針與引用

2010-04-08 11:11:16

Oracle查詢

2010-05-06 10:09:44

Oracle in

2010-09-27 10:43:35

無線路由器

2014-08-14 17:11:51

LinuxWindows

2023-08-10 17:23:10

LibreOfficOpenOffice

2021-11-14 22:06:48

JavaPython方式

2023-11-27 08:00:36

開發數據庫查詢

2010-05-21 15:33:54

MySQL text

2009-11-26 19:18:59

PHP函數implod

2010-04-26 17:24:56

Unix操作系統

2017-03-14 15:46:30

AndroidiOS不同之處
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天操夜夜操 | 精品欧美乱码久久久久久 | 欧美在线视频观看 | 精品国产不卡一区二区三区 | 国产良家自拍 | 国产精品日韩一区二区 | 亚洲一区二区三区免费在线 | 久久精品免费 | 亚洲在线 | av一区二区三区四区 | 久久99精品久久 | av在线一区二区三区 | 亚洲一区欧美一区 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 国产97在线视频 | 日日干夜夜操 | 福利视频大全 | 欧美日韩在线一区二区 | 啪啪免费 | 亚洲精品3 | 国产一二区在线 | 玖玖玖在线 | 中文字幕第7页 | 国产精品视频免费播放 | 日本淫视频 | 久久91精品国产 | 欧美中文| 中国美女av | 日韩在线观看一区 | 久久久久一区二区三区 | 欧美国产视频一区二区 | 精品免费av | 久久av一区| 国产电影一区二区在线观看 | 精品免费国产一区二区三区四区介绍 | 中文字幕在线精品 | 一区二区在线 | 国际精品久久 | 欧美一区二区三区在线观看视频 | 91久久北条麻妃一区二区三区 | 中文字幕中文字幕 |