http://blog.csdn.net/qq_28818465/article/details/53075123
抽個空又把《OpenCV-Python-Tutorial-中文版》這本電子書看了一遍,這次看的時候帶著一個心思去看,就是整理每個章節的主要函數,查了每個函數的文檔?
函數名 函數Chapter one:圖片
讀入圖像 cv2.imread(filename[, flags]) → retval?
顯示圖像 cv2.imshow(winname, mat) → None?
cv2.waitKey([delay]) → retval?
創建窗口 cv2.namedWindow(winname[, flags]) → None?
摧毀窗口 cv2.destroyWindow(winname) → None?
cv2.destroyAllWindows()→ None?
保存圖像 cv2.imwrite(filename,img[, params]) → retval
Chapter two: 視頻
讀取視頻文件、攝像頭獲取視頻 cv2.VideoCapture(filename/device) →?
.read([image]) → retval,image?
.open()→ retval?
.isOpened()→ retval?
視頻文件屬性、設置 .get(prodId) → retval?
.set(prodId,value) → retval?
保存視頻文件 cv2.VideoWriter([filename,fourcc,fps,framesize[,isColor]]) →?
.write(image) → None?
關閉視頻文件 .release()→ None
Chapter three: 繪圖
http://wiki.opencv.org.cn/index.php/Cxcore%E7%BB%98%E5%9B%BE%E5%87%BD%E6%95%B0#GetTextSize?
只有C++:InitFont、arrowedLine、
畫圓 cv2.circle(img,center,radius,color[,thickness[,lineType[,shift]]]) → None?
畫矩陣 cv2.rectangle(img,pt1,pt2,color[,thickness[,lineType[,shift]]]) → None?
畫線段 cv2.Line(img,pt1,pt2,color[,thickness[,lineType[,shift]]]) → None?
畫折線 cv2.polyLines(img,pts,isClosed,color[,thickness[,linrType[,shift]]]) → None?
剪切矩形內部的直線 cv2.clipLine(imgRect,pt1,pt2) → retval,pt1,pt2?
畫橢圓 cv2.ellipse(img,center,axes,angle,startAngle,endAngle,color[,thickness[,lineType[,shift]]]) → None?
cv2.ellipse(img,box,color[,thickness[,lineType]]) → None?
用折線逼近橢圓弧 cv2.ellipse2Poly(center,axes,angle,arcStart,arcEnd,delta) → pts?
填充多邊形 cv2.fillConvexPoly(img,points,color[,lineType[,shift]]) → None?
填充多邊形內部 cv2.fillPoly(img,pts,color[,lineType[,shift[,offset]]]) → None?
在圖像中顯示文本字符串 cv2.putText(img,text,org,fontFace,fontScale,color[,thickness[,lineType[,bottomLeftOrigin]]]) → None?
獲得文本字符串的寬度和高度 cv2.getTextSize(text,fontFace,fontScale,thickness) → retval, baseLine?
畫外部和內部的輪廓 cv2.drawContours(image,contours,contourIdx,color[,thickness[,lineType[,hierarchy[,maxLevel[,offset]]]]]) → None
Chapter four: 處理鼠標事件
處理鼠標事件 cv2.SetMouseCallback(winname,onMouse,param=None) → None
Chapter five: 滑動條
創建滑動條 cv2.createTrackbar(trackname,winname,value,count,onChange) → None?
return 滑動條屬性 cv2.getTrackbarPos(trackname,winname) → retval?
設置滑動條屬性 cv2.setTrackbarPos(trackname,winname,pos) → None
Chapter six:圖像操作
獲取圖像形狀 .shape?
獲取像素數目 .size?
獲取圖像數據類型 .dtype?
拆分、合并通道 cv2.split(m[,mv]) → mv?
cv2.merge(mv[,dst]) → dst?
圖像擴邊 cv2.copyMakeBorder(src,top,bottom,left,right,borderType[,dst[,value]]) → dst?
圖像減法 cv2.subtract(src1,src2[,dst[,mask[,dtype]]])→dst?
圖像加法 cv2.add(src1,src2[,dst[,mask[,dtype]]]) → dst?
圖像混合 cv2.addWeighted(src1,alpha,sec2,beta,gamma[,dst[,dtype]]) → dst?
圖像位運算 cv2.bitwise_and(src1,src2[,dst[,mask]]) → dst?
cv2.bitwise_not(src[,dst[,mask]]) → dst?
cv2.bitwise_or(src1,src2[,dst[,mask]]) → dst?
cv2.bitwise_xor(src1,src2[,dst[,mask]]) → dst
Chapter seven: 顏色空間轉換
轉換顏色空間 cv2.cvtColor(src,code[,dst[,dstcn]]) → dst?
檢查數組元素是否在兩個數量之間 cv2.inRange(src,lowerb,upperb[,dst]) → dst
Chapter eight: 幾何變換
http://www.cnblogs.com/dupuleng/articles/4055020.html?
擴展縮放 cv2.resize(src,dsize[,dst[,fx[,fy[,interpolation]]]]) → dst?
仿射變換 cv2.getAffineTransform(src,dst) → retval?
cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]]) → dst?
旋轉 cv2.getRotationMatrix2D(center,angle,scale)→ret?
透視變換 cv2.getPerspectiveTransform(src,dst) → retval?
cv2.warpPerspective(src,M,dsize[,dst[,flags[,borderMod[,borderValue]]]]) → dst
Chapter nine:圖像閾值
簡單閾值 cv2.threshold(src,thresh,maxvalue,type[,dst])→retval,dst?
自適應閾值 cv2.adaptiveThreshold(src,maxvalue,adaptiveMethod,thresholdType,blockSize,[,dst]) → dst
Chapter ten: 圖像平滑
2D卷積 cv2.filter2D(src,ddepth,kernel[,dst[,anchor[,delta[,borderType]]]]) → dst?
平均 cv2.blur(src,ksize,[,dst[,anchor[,borderType]]])→dst?
cv2.boxFilter(src,ddepth,ksize[,dst[,anchor[,normalize[,borderType]]]]) → dst?
高斯模糊 cv2.GuassianBlur(src,ksize,sigmaX[,dst[,sigmaY[,borderType]]]) → dst?
cv2.getGuassianKernel(ksize,sigma[,kType]) → retval?
中值模糊 cv2.medianBlur(src,ksize[,dst]) → dst?
雙邊濾波 cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace[,dst[,borderType]]) → dst
Chapter eleven: 形態學轉換
腐蝕 cv2.erode(src,kernel[,dst[,anchor[,iterations[,borderType[,borderType]]]]]) → dst?
膨脹 cv2.dilate(src,kernel[,dst[,anchor[,iterations[,borderType[,borderType]]]]]) → dst?
形態學操作(開運算,閉運算,梯度,禮帽,黑帽) cv2.morphologyEx(src,op,kernel[,dst[,anchor[,iterations[,borderType[,borderValue]]]]])→ dst?
結構化元素 cv2.getStructuringElement(shape,ksize[,anchor])→retval
Chapter twelve: 圖像梯度
Sobel算子 cv2.Sobel(src,ddepth,dx,dy[,dst[,ksize[,scale[,delta[,borderType]]]]]) →dst?
Scharr算子 cv2.Scharr(src,ddepth,dx,dy[,dst[,scale[,delta[,borderType]]]]) → dst?
Laplacian算子 cv2.Laplacian(src,ddepth[,dst[,ksize[,scale[,delta[,borderType]]]]])→dst
Chapter thirteen: canny邊緣檢測
cv2.Canny(image,threshold1,threshold2[,edges[,apertureSize[,L2gradient]]]) → edges
Chapter fourteen: 輪廓
查找輪廓 cv2.findContours(image,mode,method[,contours[,hierarchy[,offset]]]) → contours,hierarchy?
繪制輪廓 cv2.drawContours(image,contours,contourIdx,color[,thickness[,lineType[,hierarchy[,maxLevel[,offset]]]]]) → None?
圖像的矩 cv2.moments(array[,binaryImage]) → retval?
輪廓面積 cv2.contourArea(contour[,oriented]) → retval?
輪廓周長 cv2.arcLength(curve,closed) → retval?
輪廓近似 cv2.approxPolyDP(curve,epsilon,closed[,approxCurvel])→approxCurvel?
凸包 cv2.convexHull(point[,hull[,clockwise[,returnPoints]]]) → hull?
凸缺陷 cv2.convexityDefects(contour,convexhull[,convexityDefects])→convexityDefects?
凸性檢測 cv2.isContourConvex(contour) → retval?
邊界矩形 cv2.boundingRect(points) → retval?
cv2.minAreaRect(points) → retval?
cv2.boxPoints()?
最小外接圓 cv2.minEnclosingCircle(points) → center,radius?
點到輪廓距離 cv2.pointPolygonTest(contour,pt,measureDist) → retval?
橢圓擬合 cv2.fitEllipse(points) → retval?
直線擬合 cv2.fitLine(points,distType,param,reps,aeps[,line]) → line?
形狀匹配 cv2.matchShapes(contour1,contour2,method,paramter) → retval?
模塊匹配 cv2.matchTemplate(image,temp1,method[,result]) → result?
最值及其位置 cv2.minMaxLoc(src[,mask]) → minVal,maxVal,minLoc,maxLoc?
平均顏色/灰度 cv2.mean(src[,mask]) → retval
Chapter fifteen: 直方圖
繪制直方圖 cv2.calcHist(image,channels,mask,histSize,ranges[,hist[,accumulate]]) → hist?
直方圖均衡化 cv2.equalizeHist(src[,dst]) → dst?
cv2.createCLAHE([,clipLimit[,tileGridSize]]) → retval?
直方圖反向投影 cv2.calcBackProject(image,channels,hist,range,scale[,dst]) → dst?
歸一化 cv2.normalize(src[,dst[,alpha[,beta[,norm_type[.dtype[,mask]]]]]])→dst
Chapter sixteen: 圖像變換
傅立葉變換 cv2.dft(src[,dst[,flags[,nonzeroRows]]]) → dst?
cv2.getOptimalDFTSize(vecsize) → retvach
Chapter seventeen: 霍夫變換
霍夫直線變換 cv2.HoughLines(image,rho,theta,threshold[,lines[,srn[,stn]]]) → lines?
cv2.HoughLinesP(image,rho,theta,threshold[,lines[,minLineLength[,maxLineGap]]]) → lines?
霍夫圓環變換 cv2.HoughCircles(image,method,dp,minDist[,circles[,param1[,param2[,minRadius[,maxRadius]]]]]) → lines
Chapter eighteen: 分水嶺算法圖像分割
分水嶺算法 cv2.watershed(image,maskers) → None?
連通分支 cv2.connectedComponents(image[,labels[,connectivity[,ltype]]]) → retval,labels
Chapter nineteen: grabcut算法交互式前景提取
cv2.grabcut(image,mask,rect,bgdModel,fgdModel,iterCount[,mode]) → None
Chapter twenty: 角點檢測
C++:DescriptorExtractor_create()?
Harris角點檢測 cv2.cornerHarris(src,blockSize,ksize,k[,dst[,borderType]]) → dst?
提煉角位置 cv2.cornerSubPix(image,corners,winSize,zeroZone,criteria) → None?
Shi-Tomasi角點檢測 cv2.goodFeaturesToTrack(image,maxCorners,qualityLevel,minDistance[,corners[,mask[,blockSize[,useHarrisDetect[,k]]]]]) → corners?
SURF cv2.SURF([hessianThreshold[,n0ctaves[,n0ctaveLayers[,extend[,upright]]]]]) →?
SURF檢測和計算要點 .detect(image[,mask]) → keypoints?
.detectAndCompute(image,mask[,descriptors[,useProvidedKeypoints]]) → keypoints,descriptors?
FAST特征檢測 cv2.FastFeatureDetector_create([,threshold[,nonmaxSuppression[,type]]]) → retval?
繪制要點 cv2.drawKeypoints(image,keypoints,outImage[,color[,flags]])→outImg
Chapter twenty-one: 特征匹配
C++: FLANN?
Brute-Force cv2.BFMatcher([,normType[,crossCheck]]) →?
對象透視圖變換 cv2.findHomography(srcPoints,dstPoints[,method[,ransacReprojThreshold[,mask]]]) → retval,mask
Chapter twenty-two: 在視頻中找到并跟蹤目標對象
Meanshift cv2.meanShift(proImage,window,criteria) → retval,window?
camshift cv2.camShift(proImage,window,criteria) → retval,window
Chapter twenty-three: 光流
Lucas-Kanade光流 cv2.calcOpticalFlowPyrLK(prevImg,nextImg,prevPts[,nextPts[,status[,err[,winSize[,maxLevel[,criteria[,derivLambda[,flags]]]]]]]])?
→nextPts,status,err?
cv2.goodFeaturesToTrack(image,maxCorners,qualityLevel,minCorners[,corners[,mask[,blockSize[,useHarrisDetector[,k]]]]]) → corners?
GF稠密光流 cv2.calcOpticalFlowFarneback(prevImg,nextImg,pyr_scale,levels,winsize,iterations,poly_n,poly_sigma,flags[,flow]) → flow
Chapter twenty-four: 背景減除
BackgroundSubtractorMOG?
BackgroundSubtractorGMG
BackgroundSubtractorMOG cv2.BackgroundSubtractorMOG(history,nmixtures,backgroundRatio[,noiseSigma]) →?
createBackgroundSubtractorMOG2([, history[, varThreshold[, detectShadows]]]) → retval
Chapter twenty-five: 攝像機設定和3D重構
將對象點轉換到圖像點 cv2.projectPoints(objectPoints,rvec,tvec,cameraMatrix,distCoeffs[,imagePoints[,jacobian[,aspectRatio]]])?
→ imagePoints,jacobian?
攝像機標定 cv2.calibrateCamera(objectPoints,imagePoints,imageSize[,cameraMatrix[,distCoeffs[,rvecs[,tvecs[,flags]]]]])?
→ retval,cameraMatrix,distCoeffs,rvecs,tvecs?
畸變校正 cv2.getOptimalNewCameraMatrix(cameraMatrix,distCoeffs,imageSize,alpha[,newImgSize[,centerPrincipalPoint]])?
→retval,validPixROI?
cv2.undistort(src,cameraMatrix,distCoeffs[,dst[,newCameraMatrix]]) → dst?
cv2.remap(src,map1,map2,interpolation[,dst[,borderMode[,borderValue]]]) → dst?
計算旋轉和變換 cv2.solvePnPRansac(objectPoints,imagePoints,cameraMatrix,distCoeffs[,rvec[,tvec[,useExtrinsicGuess[,iterationsCount[,reprojectionError[,minInliersCount[,inliers[,flags]]]]]]]])?
→ rvec,tvec,inliers
Chapter twenty-six: 機器學習
K近鄰 cv2.KNearest.train(trainData,responses[,sampleIdx[,isRegression[,maxK[,updateBase]]]]) → retval?
cv2.KNearest.find_nearest(samples,k[,results[,neighborResponses[,dists]]]) → retval,results,neighborResponses,dist?
SVM機 cv2.SVM(trainData,responses[,varIdx[,sampleIdx[,params]]]) →?
.train(traindata,responses[,varIdx[,sampleIdx[,params]]]) → retval?
.train_auto(trainData,responses,varIdx,sampleIdx,params[,k_fold[,Cgrid[,gammaGrid[,pGrid[,nuGrid[,coeffGrid[,degreeGrid[,balanced]]]]]]]]) → retval?
.predict(sample[, returnDFVal]) → retval?
.save()?
K值聚類 cv2.kmeans(data,K,criteria,attempts,flags[,bestLabels[,centers]]) → retval,bestLabels,centers
Chapter twenty-seven: 計算攝影學
圖像去噪 cv2.fastNlMeansDenoising(src[,dst[,h[,templateWindowSize[,searchWindowSize]]]])→dst?
cv2.fastNlMeansDenoising(src,h[,dst[,templateWindowSize[,searchWindowSize[,normType]]]])→dst?
fastNlMeansDenoisingMulti(srcImgs,imgToDenoiseIndex,temporalWindowSize[,dst[,h[,templateWindowSize[,searchWindowSize]]]])→dst?
cv2.fastNlMeansDenoisingMulti(srcImgs,imgToDenoiseIndex,temporalWindowSize,h[,dst[,templateWindowSize[,searchWindowSize[,normType]]]])→dst?
cv2.fastNlMeansDenoisingColored(src[,dst[,h[,hColor[,templateWindowSize[,searchWindowSize]]]]])→dst?
fastNlMeansDenoisingColoredMulti(srcImgs,imgToDenoiseIndex,temporalWindowSize[,dst[,h[,hColor[,templateWindowSize[,searchWindowSize]]]]])→dst?
圖像修補 cv2.inpaint(src,inpaintMask,inpaintRange,flags[,dst]) →dst
Chapter twenty-eight: 使用Haar 分類器進行面部檢測
XML分類器 cv2.CascadeClassifier(filename)→?
.empty()→retval?
.load(filename) → retval?
.detectMultiScale(image,rejectLevels,levelWeights[,scaleFactor[,minNeighbors[,flags[,minSize[,maxSize[,outputRejectLevels]]]]]]) → objects
這里面還有是很多缺陷,有一些函數在網站里是找不到的,有一些是這有C語言的,而不是python的。重新看了一遍才發現這些,感覺自己之前看的很粗糙,以后有時間再去把這些坑坑洼洼補上,還有著其他的思路去理解這些函數,雖然只是一個Brian Storming,但堅信有實現的機會和時間。最近還在忙著課程作業,為自己加油!!!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
