亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cvcalib.cpp

?? 基于OpenCV的相機(jī)標(biāo)定(程序已經(jīng)通過驗(yàn)證)
?? CPP
字號(hào):
// cvCalib.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>

void InitCorners3D(CvMat *Corners3D, CvSize ChessBoardSize, int Nimages, float SquareSize);

int image_width =640;
int image_height = 480;//待標(biāo)定圖片的大小
const int ChessBoardSize_w = 7;
const int ChessBoardSize_h = 7;//圖片中可標(biāo)定的角數(shù)
const CvSize  ChessBoardSize = cvSize(ChessBoardSize_w,ChessBoardSize_h);
const int NPoints = ChessBoardSize_w*ChessBoardSize_h;//角點(diǎn)個(gè)數(shù)
const int NImages=9;//待標(biāo)定的圖片數(shù)
int corner_count[NImages] = {0};
float    SquareWidth = 10; //棋盤格子的邊長(zhǎng),可任意設(shè)定,不影響內(nèi)參數(shù)

CvMat *intrinsics;
CvMat *distortion_coeff;
CvMat *rotation_vectors;
CvMat *translation_vectors;
CvMat *object_points;
CvMat *point_counts;
CvMat *image_points;

void main()
{
	IplImage     *current_frame_rgb; 
	IplImage     *current_frame_gray;
	IplImage     *chessBoard_Img;
	CvPoint2D32f corners[NPoints*NImages];
	
	chessBoard_Img =cvCreateImage(cvSize(image_width, image_height), IPL_DEPTH_8U, 3);
	current_frame_gray = cvCreateImage(cvSize(image_width, image_height), IPL_DEPTH_8U, 1);
	current_frame_rgb = cvCreateImage(cvSize(image_width, image_height), IPL_DEPTH_8U, 3);
	
	int captured_frames=0;
	for(captured_frames=0;captured_frames<NImages;captured_frames++)
	{
		char filename[]="00.bmp";   //說明:我把待標(biāo)定的圖片的名子依次命名為:01.jpg, 02.jpg, 03.jpg, 04.jpg,……
		if(captured_frames<9)
			filename[1]=(char)(captured_frames+49);
		else if(captured_frames>=9&&captured_frames<=99)
		{
			int j,jj;
			jj=(captured_frames+1)/10;
			j=(captured_frames+1)%10;
			filename[0]=jj+48;
			filename[1]=j+48;
		}
		else 
			printf("error, too many images.......\n"); //load images end
		
		chessBoard_Img=cvLoadImage( filename, 1 );
		cvCvtColor(chessBoard_Img, current_frame_gray, CV_BGR2GRAY);
        cvCopy(chessBoard_Img,current_frame_rgb);
		
		int find_corners_result;
		find_corners_result = 
			cvFindChessboardCorners(current_frame_gray,
			ChessBoardSize,
			&corners[captured_frames*NPoints],
			&corner_count[captured_frames],//int corner_count[NImages] = {0};
			CV_CALIB_CB_ADAPTIVE_THRESH );
		cvFindCornerSubPix( current_frame_gray, 
			&corners[captured_frames*NPoints],
			NPoints, cvSize(11,11),cvSize(-1,-1), 
			cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.01) );
		cvDrawChessboardCorners(current_frame_rgb, ChessBoardSize, //繪制檢測(cè)到的棋盤角點(diǎn)
			&corners[captured_frames*NPoints], 
			NPoints, 
			find_corners_result);

//		cvShowImage("Window 0",chessBoard_Img);
		cvSaveImage("角點(diǎn)繪圖.bmp",current_frame_rgb);
		cvNamedWindow("result", 1); 
		cvShowImage("result",current_frame_rgb);
	    cvWaitKey(100);
	}
	
	intrinsics         = cvCreateMat(3,3,CV_32FC1);
	distortion_coeff     = cvCreateMat(1,4,CV_32FC1);
	rotation_vectors     = cvCreateMat(NImages,3,CV_32FC1);
	translation_vectors     = cvCreateMat(NImages,3,CV_32FC1);
	point_counts         = cvCreateMat(NImages,1,CV_32SC1);
	object_points     = cvCreateMat(NImages*NPoints,3,CV_32FC1);
	image_points         = cvCreateMat(NImages*NPoints,2,CV_32FC1);
	
	//把2維點(diǎn)轉(zhuǎn)化成三維點(diǎn)(object_points輸出量),

	InitCorners3D(object_points, ChessBoardSize, NImages, SquareWidth);
	cvSetData( image_points, corners, sizeof(CvPoint2D32f));
	cvSetData( point_counts, &corner_count, sizeof(int));


	
	//計(jì)算內(nèi)參
	cvCalibrateCamera2( object_points,
		image_points,
		point_counts,
		cvSize(image_width,image_height),
		intrinsics,
		distortion_coeff,
		rotation_vectors,
		translation_vectors,
		0);
	
	float intr[3][3] = {0.0};
	float dist[4] = {0.0};
	float tranv[3] = {0.0};
	float rotv[3] = {0.0};

	
	for ( int i = 0; i < 3; i++)
	{
		for ( int j = 0; j < 3; j++)
		{
			intr[i][j] = ((float*)(intrinsics->data.ptr + intrinsics->step*i))[j];
		}
		dist[i] = ((float*)(distortion_coeff->data.ptr))[i];
		tranv[i] = ((float*)(translation_vectors->data.ptr))[i];
		rotv[i] = ((float*)(rotation_vectors->data.ptr))[i];
	}
    	dist[3] = ((float*)(distortion_coeff->data.ptr))[3];
	


	printf("-----------------------------------------\n ");
	printf("INTRINSIC MATRIX:  \n");
	printf("[ %6.4f %6.4f %6.4f ]  \n", intr[0][0], intr[0][1], intr[0][2]);
	printf("[ %6.4f %6.4f %6.4f ]  \n", intr[1][0], intr[1][1], intr[1][2]);
	printf("[ %6.4f %6.4f %6.4f ]  \n", intr[2][0], intr[2][1], intr[2][2]);
	printf("----------------------------------------- \n");
	printf("DISTORTION VECTOR:  \n");
	printf("[ %6.4f %6.4f %6.4f %6.4f ]  \n", dist[0], dist[1], dist[2], dist[3]);
	printf("----------------------------------------- \n");
	printf("ROTATION VECTOR:  \n");
	printf("[ %6.4f %6.4f %6.4f ]  \n", rotv[0], rotv[1], rotv[2]);
	printf("TRANSLATION VECTOR:  \n");
	printf("[ %6.4f %6.4f %6.4f ]  \n", tranv[0], tranv[1], tranv[2]);
	printf("----------------------------------------- \n");
	
	cvReleaseMat(&intrinsics);       
	cvReleaseMat(&distortion_coeff); 
	cvReleaseMat(&rotation_vectors);
	cvReleaseMat(&translation_vectors);   
	cvReleaseMat(&point_counts);
	cvReleaseMat(&object_points);
	cvReleaseMat(&image_points);
	cvDestroyAllWindows();
}

void InitCorners3D(CvMat *Corners3D, CvSize ChessBoardSize, int NImages, float SquareSize)
{
	int CurrentImage = 0;
	int CurrentRow = 0;
	int CurrentColumn = 0;
	int NPoints = ChessBoardSize.height*ChessBoardSize.width;
	float * temppoints = new float[NImages*NPoints*3];
	
	// for now, assuming we're row-scanning
	for (CurrentImage = 0 ; CurrentImage < NImages ; CurrentImage++)
	{
		for (CurrentRow = 0; CurrentRow < ChessBoardSize.height; CurrentRow++)
		{
			for (CurrentColumn = 0; CurrentColumn < ChessBoardSize.width; CurrentColumn++)
			{
				temppoints[(CurrentImage*NPoints*3)+(CurrentRow*ChessBoardSize.width + 
					CurrentColumn)*3]=(float)CurrentRow*SquareSize;
				temppoints[(CurrentImage*NPoints*3)+(CurrentRow*ChessBoardSize.width + 
					CurrentColumn)*3+1]=(float)CurrentColumn*SquareSize;
				temppoints[(CurrentImage*NPoints*3)+(CurrentRow*ChessBoardSize.width + 
					CurrentColumn)*3+2]=0.f;
			}
		}
	}
	(*Corners3D) = cvMat(NImages*NPoints,3,CV_32FC1, temppoints);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国偷自产一区二区三区成为亚洲经典 | 日本一区二区三区四区在线视频 | 国产成人av电影在线观看| 日韩美女视频在线| 狠狠色综合播放一区二区| 国产午夜精品一区二区三区四区| 国产经典欧美精品| 中文字幕一区二区三区乱码在线| 99r国产精品| 天天综合色天天| 亚洲在线免费播放| 在线国产电影不卡| 另类综合日韩欧美亚洲| 国产欧美日韩另类视频免费观看| 97精品视频在线观看自产线路二| 亚洲成a人片在线观看中文| 日韩一区二区在线看| 国产精品1024久久| 亚洲v中文字幕| 久久人人爽人人爽| 一本色道久久综合狠狠躁的推荐| 婷婷国产v国产偷v亚洲高清| wwwwww.欧美系列| 日本道精品一区二区三区| 丝袜诱惑亚洲看片 | 国产欧美日产一区| 欧美色图第一页| 国产成人在线影院| 无吗不卡中文字幕| 中文字幕电影一区| 日韩精品一区二区三区蜜臀| 99久久99久久免费精品蜜臀| 天堂成人免费av电影一区| 国产亚洲精品bt天堂精选| 欧美在线视频日韩| 大陆成人av片| 麻豆freexxxx性91精品| 日韩理论片网站| 精品国产乱码久久久久久1区2区| 色综合色综合色综合色综合色综合 | 91麻豆精品国产91久久久久久久久 | 精品国产乱码久久久久久久久 | 亚洲成av人在线观看| 国产亚洲欧美激情| 5858s免费视频成人| 成人avav影音| 狠狠色综合色综合网络| 午夜精品久久一牛影视| 中文字幕乱码日本亚洲一区二区| 91精品国产欧美一区二区| 91蝌蚪porny| 国产91丝袜在线播放九色| 人人精品人人爱| 亚洲一区欧美一区| 亚洲欧美一区二区三区极速播放| 精品国产伦理网| 日韩女优视频免费观看| 欧美日韩中文一区| 在线免费一区三区| 99久久国产综合精品麻豆| 国产一区二区三区精品视频| 日韩精品成人一区二区在线| 亚洲已满18点击进入久久| 中文av字幕一区| 久久久久9999亚洲精品| 日韩三级在线观看| 欧美一级理论片| 在线综合+亚洲+欧美中文字幕| 欧美在线观看18| 色视频成人在线观看免| 色老汉av一区二区三区| av在线一区二区| 91麻豆国产福利在线观看| 成人中文字幕电影| 成人精品视频.| 成人av午夜电影| 久久综合九色综合97_久久久| 欧美精品久久久久久久久老牛影院| 色噜噜夜夜夜综合网| 91福利在线看| 欧美精品一二三| 91麻豆精品91久久久久久清纯 | 亚洲激情中文1区| 亚洲免费观看高清完整版在线观看| 国产精品久久久久国产精品日日 | 成人av在线电影| av一区二区不卡| 91在线国产福利| 欧美在线综合视频| 制服丝袜中文字幕亚洲| 日韩欧美视频一区| 久久精品人人做人人综合| 中文在线免费一区三区高中清不卡 | 国产精品一色哟哟哟| 国产精品一区二区视频| 国产宾馆实践打屁股91| 91亚洲资源网| 欧美精品丝袜久久久中文字幕| 欧美日韩精品免费| 精品精品国产高清一毛片一天堂| 久久美女高清视频| 国产精品乱码一区二区三区软件| 亚洲人成精品久久久久久| 亚洲一区二区视频| 狠狠色伊人亚洲综合成人| 高清日韩电视剧大全免费| 色综合久久66| 日韩欧美不卡一区| 国产精品成人在线观看| 亚洲国产欧美在线人成| 国产在线精品一区二区三区不卡| 国产不卡高清在线观看视频| 在线观看视频欧美| 色狠狠一区二区三区香蕉| 日韩一区精品视频| 蜜桃av噜噜一区| 成人性生交大片免费看中文网站| 日本精品一区二区三区高清 | 欧美中文字幕一区| 欧美大度的电影原声| 偷拍一区二区三区| 欧美丝袜自拍制服另类| 亚洲日本免费电影| 91在线观看美女| 中文字幕一区二区三区蜜月| 国产成人精品亚洲午夜麻豆| 精品欧美乱码久久久久久 | 午夜影院在线观看欧美| 色综合久久综合网97色综合| 国产精品网站导航| 成人激情动漫在线观看| 国产欧美一区二区精品性色超碰 | 亚洲免费伊人电影| 91在线云播放| 亚洲综合男人的天堂| 欧洲av在线精品| 亚洲va欧美va人人爽| 欧美日韩亚洲另类| 丝袜a∨在线一区二区三区不卡| 欧美福利视频导航| 日韩高清不卡一区二区| 日韩一区二区三区视频在线| 奇米精品一区二区三区在线观看| 69p69国产精品| 狠狠狠色丁香婷婷综合久久五月| 精品国产91久久久久久久妲己| 国产一区二区三区黄视频| 国产精品视频免费| 色爱区综合激月婷婷| 亚洲高清久久久| 日韩免费高清av| 粉嫩绯色av一区二区在线观看| 国产精品久99| 欧美日韩一区二区三区在线| 亚洲成a人片综合在线| 欧美mv日韩mv国产网站app| 国产精品资源站在线| 中文字幕综合网| 777午夜精品免费视频| 久久爱www久久做| 国产精品福利电影一区二区三区四区| 一本大道久久a久久综合婷婷| 日韩精品视频网站| 久久久久久免费网| 色综合久久综合网欧美综合网| 日韩精品久久理论片| 国产欧美一区二区精品秋霞影院| 99久免费精品视频在线观看 | 亚洲一区二区三区美女| 欧美一区二区三区四区久久| 国产呦精品一区二区三区网站| 亚洲婷婷综合色高清在线| 91精品国产免费| 99久久伊人精品| 日本视频免费一区| 国产精品久久久久久久久搜平片 | 一区二区久久久| 欧美草草影院在线视频| 99热精品一区二区| 久久99热99| 亚洲免费av观看| 久久久久久一二三区| 欧美三级三级三级| 丁香婷婷综合网| 强制捆绑调教一区二区| 亚洲欧美在线观看| 欧美大片日本大片免费观看| 94-欧美-setu| 国产一区二区福利视频| 午夜精品久久一牛影视| 国产精品第五页| 久久蜜桃一区二区| 7777女厕盗摄久久久| 99久久婷婷国产综合精品电影| 美女尤物国产一区| 亚洲国产精品一区二区久久 | 99久久国产综合精品麻豆| 久久国产精品第一页| 亚洲欧美日韩小说| 久久亚洲精品国产精品紫薇|