[learning opencv]第十章:精确检测角点函数cvFindCornerSubPix的demo

来源:互联网 发布:宋仲基长相知乎 编辑:程序博客网 时间:2024/06/18 04:22

cvFindCornerSubPix利用cvGoodFeaturesToTrack检测出来的角点的基础上,能够将角点位置精确到亚像素级精度。

cvGoodFeaturesToTrack的使用可以参考这里。

//cvFindCornersSubPix_demo.cpp//http://blog.csdn.net/moc062066//2011.07.26#include <stdio.h>#include <cv.h>#include <cxcore.h>#include <highgui.h>#pragma comment(lib, "opencv_core220d.lib")#pragma comment(lib, "opencv_highgui220d.lib")#pragma comment(lib, "opencv_imgproc220d.lib")int main(int argc, char** argv){FILE* fp = fopen("d:\\result.txt","w+" ) ;const char* filename = "D:\\mochen_WIN32\\opencv\\CH10\\one_way_train_0001.jpg" ;//const char* windowname = "http://blog.csdn.net/moc062066" ;//img AND img_copy is the same,use to draw different result IplImage* img = cvLoadImage(filename,CV_LOAD_IMAGE_COLOR );IplImage* img_copy = cvCloneImage( img ) ;//a copy of imgIplImage* img_gray = cvCreateImage(cvGetSize( img ),IPL_DEPTH_8U, 1) ;IplImage* eig_image = cvCreateImage(cvGetSize( img ),IPL_DEPTH_32F, 1);IplImage* temp_image = cvCloneImage( eig_image ) ;cvCvtColor(img,img_gray,CV_BGR2GRAY);const int MAX_CORNERS = 1000 ;CvPoint2D32f* corners = new CvPoint2D32f[ MAX_CORNERS ];int corner_count = MAX_CORNERS;double quality_level = 0.1; //OR 0.01double min_distance = 5;cvGoodFeaturesToTrack(img_gray,eig_image,         temp_image,corners,&corner_count,quality_level,min_distance);//draw corners from cvGoodFeaturesToTrack on "img"for (int i = 0 ; i < corner_count ; ++i){cvLine( img,cvPoint(corners[i].x,corners[i].y) ,cvPoint(corners[i].x,corners[i].y),CV_RGB(255,0,0),5);fprintf(fp,"\t%f\t%f\n",corners[i].x,corners[i].y) ;}fprintf(fp,"\n\n\n\n\n") ;int half_win_size = 3;//the window size will be 3+1+3=7int iteration = 20;double epislon = 0.1;cvFindCornerSubPix(img_gray,corners,corner_count,cvSize(half_win_size,half_win_size),cvSize(-1,-1),//no ignoring the neighbours of the center cornercvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,iteration,epislon));//draw subpix corners on "img_copy"for (int i=0;i<corner_count;i++){cvLine( img_copy,cvPoint(corners[i].x,corners[i].y) ,cvPoint(corners[i].x,corners[i].y),CV_RGB(255,0,0),5);fprintf(fp,"\t%f\t%f\n",corners[i].x,corners[i].y) ;}cvNamedWindow("cvFindCornerSubPix", CV_WINDOW_AUTOSIZE );cvShowImage( "cvFindCornerSubPix", img );cvNamedWindow("cvGoodFeaturesToTrack", CV_WINDOW_AUTOSIZE );cvShowImage( "cvGoodFeaturesToTrack", img_copy );cvWaitKey(0);cvReleaseImage(&img_gray);cvReleaseImage(&img);cvReleaseImage(&img_copy);cvDestroyWindow("cvGoodFeaturesToTrack");cvDestroyWindow("cvFindCornerSubPix");return 0;}

结果:




还可以看看具体的位置差别:

226177223.979004177.954727246457246.342575458.441925206217205.988937217.0172126323361.92979231.7795725923957.358231237.760956476127476.999207126.51577244230244.378113231.000763329261328.071289261.5446174125339.679108251.516586449206450.561768205.385559298116297.48111115.1462335724958.309151250.5284276525963.784649257.4826055623357.358143231.902939480265481.90155264.1441044026639.356575265.407654282151280.037598152.0582283724737.105995245.344711391103393.433319101.992729242141242.607422141.100433186258187.336563257.453247374279373.053436277.1578985525953.271538257.8770756924269.2658244.04881326067259.07180867.5057075025249.351063250.887909356323355.215271323.202823726037.986225258.311005336127337.292725126.324081320163320.452179163.841644305203303.238556204.0696415126749.322056265.4517524624644.387882244.464386423150421.249329150.7345896424562.19445243.7462315023948.513313238.29579236560366.50402859.652817189209187.248123209.6129766026659.270794265.092224262191262.622223190.7682192885287.5638434.650157025269.444695249.886948421293419.476837293.755798389233389.720612233.096863510178508.495789178.653564513327513.642883326.605164285246285.041473245.7070774224344.218742244.5545657427174.592758271.931274265290266.595428289.2609864525943.965206258.22198544581446.23483380.587486262105260.089722105.4172133823839.463673239.081985179477178.42366478.361267294349292.825348349.09640529143291.82186942.63760427772277.38174472.414444466309466.518738310.26712310306309.965088305.939087361178362.592712177.0574046926568.396118264.3947456527164.174408272.556793226274225.409454272.912567346219345.795349218.329971464163464.552094164.5724957023770.615662236.8177347429874.548515296.672241402340402.264862340.515778435247435.498627248.5113076830668.562714305.116577528279528.224304279.997046025658.378197257.673218451357449.710205357.786896226134224.146622134.863815406190406.038696190.73521431282313.82318181.432472337366337.767242366.91449432402432.503906403.2373963423535.783943233.39819372333723336322762.944881225.2044987230372.011215304.445038497373497.65799374.472382210313208.663559313.423889387385385.418671385.52496339272392726830068300573294573.499817295.6926576831969.112984318.0799877231272.112968310.587891170295170.060715296.296753378137378.369995137.9538886133560.104778334.0171514022840.901752226.9124156631166.144821311.928802434112434.703094113.56768835392352.96685891.112775332753.927685328.1561895622757.43726225.7644657232374.141632323.7892762774242774245830757.944839307.8641975832958.423988327.466278294458295.407806459.4665835025949.397194258.41854960302603024723447.988354232.77198833052329.63488850.8727424822750.580132226.629684293429291.427155427.7236336131960.054024320.2915952796279.2023324.6826045526454.053097265.405645524353.70647243.994568152288151.368958288.245277033868.620132339.708984561154562.112153.836777298467296.016693465.889954129144130.049789143.166763542237541.159363235.351898248329248.618698330.610992559343559.828735342.710571169252168.375534250.124008494221495.947693220.213699528105528.884766104.9120867331873.327011317.4544681454771454774827249.243771273.1654665834359.737438341.331635552192552.329285193.175949587250585.283508251.023361521139519.62085139.533493188376188376161477160.223663478.555725286438287.129913439.437408528435528.64801436.56555253304533046432764.307709326.131226206173205.530167172.026265332152.927059322.150146290453289.464203451.641998283425284.591217425.8013315927259.303421272.72210721950.55171194.967331594209595.181274208.2857365030950.056606310.088776594301594.44751302.387329110465112.678375464.216278105301105.904839299.431585831359.005356313.973969580351581.15625350.4833376534764.425552348.0896284368285.773041367.813232242102241.573944100.385773543391544.625549390.5231325427253.65321272.6301881204771204776533963.423409340.92755148994488.38494992.7544336533263.918072333.6022032626625.558767264.518463291401289.508911400.552765141433141433161434161.566635432.378479143427144.209717424.16922144453146.34552450.9873055031549.960327316.333716520766.250748207.832001158407158407282461283.567688460.9052435333754.0564334.985413638291638.365051291.3645323447732.855476478.48403916241316241327440274.12921138.520088412774127740771406.61712670.2295469547795.162102478.559387133477133477225390226.661194389.679596603169603.631226168.46019146467144.850479464.238312174383174.595169382.531189112325111.867439326.2996521943881943885834858.941166349.243073156453157.918381454.864227615213615.423035214.50383178398178.002335397.914215116473117.430855470.2877814732946.515869329.8507394430744.659878305.491821160457157.926819459.669403148415150.416962417.023529145290143.436157290.277985109474109474118447117.039696446.002502139469139469138445140.743973444.947571160310159.202484309.343964153467152.075958468.852844137455134.443466455.724915484420482.420044421.416656143448140.511902445.754517622176622.9776174.712143154448154448150306151.808548305.6811833027730.737091279.031219136439136439165449162.291138450.282227191395191.669235392.033622290.359053229.4537059530693.769638306.755463303477303.275635478.525665176389176389140477139.243103478.5068361494551494559743895.075996438.308624638285638.268433284.668304292477292477188401185.619461400.6849677022770227126419126419143438143438610133611.076111132.7215581724401724402424724.90378247.919006158419158419566397566.452209398.134277121410119.065735410.27713325233.511356251.844849180381178.197098379.613708126452126452183393182.582108392.361359131437131437151420150.32756417.153473128477126.419952478.534943138429138429166394166.871658395.072937217367217367172394170.262985391.322693133451134.923233449.34375135298136.869858298.207581131446131446113454111.401466453.746399142399143.115082397.244324144462145.246246464.354553132462130.169952459.457245182420182.27916419.06344617038817038882558.042757256.647827605259605.310486257.383911102468100.057426467.8941657615574.387268155.61775221740.527431173.8775941854271854271614631614632802828028118461116.281197461.59375198393198393140362140.18956361.069587734575.254028346.9547124532346.802341323.090698156414154.80864411.225403107461105.771194460.097656115467115467107434107434572121570.835999119.155617153478151.811005478.576996122466124.632881466.831177173445171.83699442.292023131406132.519928403.895569207394208.327072392.170074124440122.428673439.951691176327177.730301326.282715176403174.62149400.2214058345382.17395452.288971194407192.251038405.181671144303144.42923301.7715151733991733998845888458128459130.425415458.9983227846076.168289459.321838182401184.579971400.8520252423.816916243.9522251694111694113024423024428246482464128402127.028763401.395264109423108.082031422.247162115417113.579552416.25488342331423311674001674002013972013979044688.533951445.0791323030428.948282305.937805121451123.440361448.574249104429102.435143428.32656911842111842136277362775234454.155262342.37551911922111922115547315547322254222547046968.035934469.233368172477169.329987478.596527151460153.50676461.9445194833750.156414335.978241215384215.199768385.493744181387181387106443106443278419276.92392419.2388924231942319149447150.125107449.818298190421190421228360230.534348361.44137662474.255842245.2156831854061854069533195.585266329.2674261244711244714634446.258667343.3055421394601394609345093450184440184440153409154.891968411.1164252023520235139420138.211136420.4325878247780.268921478.451661024481024482427524275276457275.921661457.222351192477192477634135634135212390212390314477314.638733478.578766179437180.079559436.389618307405308.8909405.7190257534074.390884338.975739150363148.123001363.714539324448325.662994448.72998113427113427133467131.354553464.375366195415195.793442414.296265555449554.767761450.064885328852.229633289.30661126243124.381767242.674225306446306446302464303.366913465.3641055034950.666424350.814087301437299.912231435.259462122918.846128227.009109593335592.243591335.9715274131441314157400154.883865400.263031303470305.244904471.69534322269222692224022240132396130.897324395.3699348124378.946297241.783127297477297477288445288.517487444.895172299432299432168320169.037354318.091766284374284374122457121.275467454.7109078829888298171316169.500443317.1633611304151304152253402253408425483.076866256.995026103145103145221361221361


原创粉丝点击