opencv 노트

2790 단어 opencv
OpenCV에서minMaxLoc 사용
함수 프로토타입:
void minMaxLoc( const Mat& src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, const Mat& mask=Mat() );
void minMaxLoc(const MatND& src, double* minVal, double* maxVal, int* minIdx=0, int* maxIdx=0, const MatND& mask=MatND() );
void minMaxLoc(const SparseMat& src, double* minVal, double* maxVal, int* minIdx=0, int* maxIdx=0);
설명:
1 minMaxLoc에서는 행렬의 최소값과 최대값을 벡터로 지정하는 1차원 배열의 위치를 찾습니다.
2 매개 변수가 필요하지 않으면 NULL 또는 0으로 설정하면 됩니다.
3 minMaxLoc에서 Mat와 MatND를 대상으로 하는 재부팅 중 다섯 번째 파라미터는 선택할 수 있는 (optional)입니다. 전달하지 않는 것을 사용하지 않으면 됩니다.
코드:
Mat tmpCount(8, 1, CV_32FC1); 
float tmpCountMinVal = 0, tmpCountMaxVal = 0; 
Point minPoint, maxPoint; 
minMaxLoc(tmpCount, &tmpCountMinVal, &tmpCountMaxVal, &minPoint, &maxPoint); 
minMaxLoc(temp1, &minVal, NULL, &minCoor,NULL); //       ,    NULL 
cout<<minVal<<endl; 
minMaxLoc(temp1, 0, &maxVal, 0,& maxCoor); //       0 
cout<<maxVal<<endl;

결과:
10.9525 13.4054 17.6646 10.5643 1.22926 5.95938 11.14 4.83435
1.22926 17.6646
1.22926
17.6646
-------------------------------타이머 함수 ------------------------------------------
double t = (double)getTickCount();
t = ((double)getTickCount() - t)/getTickFrequency();
cout << "Times passed in seconds: "<< t << endl;
///API 함수를 호출하여 컴퓨터의 타이머 주파수를 얻어 해당 시간을 계산합니다
///
getTickFrequency()는 컴퓨터의 타이머 주파수입니다.
------------------------------------------------------------------------
--------------------------------축소 Resize---------------------
double scale=0.5; //      
string imageurl = "F:/opencv/samples/cpp/baboon.jpg";
Mat image =imread(imageurl);A
//   
Size dsize = Size(image.cols*scale,image.rows*scale);
Mat image2 = Mat(dsize,CV_32S);
resize(image, image2,dsize);

----------------------------------------------------------------
----------- 선택 행렬에서 복합적으로 요구되는 요소 ----------------
   Mat test=(Mat_<unsigned char>(10,1)<<1,2,3,4,5,6,7,8,9,10);
	Mat b=(Mat_<unsigned char>(10,1)<<1,2,3,4,5,6,7,8,9,10);
	test=test>5;
	test=test/255;
	cout<<test<<endl;
	cout<<b<<endl;
	int t1=test.type();//  t1,t2    
	int t2=b.type();
	Mat c(test.mul(b));
	cout<<c<<endl;
---------------------------------------------------------------------------
Mat 유형 변환
 Mat a = Mat_ (10, 3);//또는 Mat a = Mat (10, 3)
   Mat_ b;
   a.ConvertTo(b, CV_32F);
cout<<"a type"<

좋은 웹페이지 즐겨찾기