Changeset 23036
- Timestamp:
- 11/09/08 11:44:26 (5 years ago)
- Location:
- lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CV.cpp
r23009 r23036 5380 5380 #pragma region LUT 5381 5381 /// <summary> 5382 /// 出力配列の各要素値をルックアップテーブルを用いて決定する.配列のインデックスは入力配列より求められる.src の各要素に対して以下のような処理を行う. 5383 /// dst(I)=lut[src(I)+DELTA] . 5384 /// ここで,srcのデプスが CV_8U の場合はDELTA=0,CV_8S の場合は DELTA=128. 5382 /// 出力配列の各要素値をルックアップテーブルを用いて決定する. 5385 5383 /// </summary> 5386 5384 /// <param name="src">入力配列(各要素は8ビットデータ).</param> … … 5393 5391 CHECK_NULL(lut); 5394 5392 ::cvLUT(src->Ptr, dst->Ptr, lut->Ptr); 5393 } 5394 /// <summary> 5395 /// 出力配列の各要素値をルックアップテーブルを用いて決定する.ルックアップテーブルが配列で指定できる簡易バージョン. 5396 /// </summary> 5397 /// <param name="src">入力配列(各要素は8ビットデータ)</param> 5398 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 5399 /// <param name="lut">要素数が256であるルックアップテーブル</param> 5400 void CV::LUT( N::CvArr^ src, N::CvArr^ dst, array<Byte>^ lut ) 5401 { 5402 CHECK_NULL(src); 5403 CHECK_NULL(dst); 5404 CHECK_NULL(lut); 5405 5406 int type = 1; 5407 switch(dst->ElemChannels){ 5408 case 1: type = CV_8UC1; break; 5409 case 2: type = CV_8UC2; break; 5410 case 3: type = CV_8UC3; break; 5411 case 4: type = CV_8UC4; break; 5412 } 5413 ::CvMat* lut_mat = ::cvCreateMat(256, 1, type); 5414 5415 uchar* lut_ptr = ArrayConverter::ToNativeArray<Byte, uchar>(lut); 5416 ::cvSetData( lut_mat, lut_ptr, CV_AUTO_STEP ); 5417 5418 ::cvLUT(src->Ptr, dst->Ptr, lut_mat); 5419 5420 ::cvReleaseMat(&lut_mat); 5421 delete[] lut_ptr; 5422 } 5423 /// <summary> 5424 /// 出力配列の各要素値をルックアップテーブルを用いて決定する.ルックアップテーブルが配列で指定できる簡易バージョン. 5425 /// </summary> 5426 /// <param name="src">入力配列(各要素は8ビットデータ)</param> 5427 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 5428 /// <param name="lut">要素数が256であるルックアップテーブル</param> 5429 void CV::LUT( N::CvArr^ src, N::CvArr^ dst, array<Int16>^ lut ) 5430 { 5431 CHECK_NULL(src); 5432 CHECK_NULL(dst); 5433 CHECK_NULL(lut); 5434 5435 int type = 1; 5436 switch(dst->ElemChannels){ 5437 case 1: type = CV_8UC1; break; 5438 case 2: type = CV_8UC2; break; 5439 case 3: type = CV_8UC3; break; 5440 case 4: type = CV_8UC4; break; 5441 } 5442 ::CvMat* lut_mat = ::cvCreateMat(256, 1, type); 5443 5444 short* lut_ptr = ArrayConverter::ToNativeArray<Int16, short>(lut); 5445 ::cvSetData( lut_mat, lut_ptr, CV_AUTO_STEP ); 5446 5447 ::cvLUT(src->Ptr, dst->Ptr, lut_mat); 5448 5449 ::cvReleaseMat(&lut_mat); 5450 delete[] lut_ptr; 5451 } 5452 /// <summary> 5453 /// 出力配列の各要素値をルックアップテーブルを用いて決定する.ルックアップテーブルが配列で指定できる簡易バージョン. 5454 /// </summary> 5455 /// <param name="src">入力配列(各要素は8ビットデータ)</param> 5456 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 5457 /// <param name="lut">要素数が256であるルックアップテーブル</param> 5458 void CV::LUT( N::CvArr^ src, N::CvArr^ dst, array<Int32>^ lut ) 5459 { 5460 CHECK_NULL(src); 5461 CHECK_NULL(dst); 5462 CHECK_NULL(lut); 5463 5464 int type = 1; 5465 switch(dst->ElemChannels){ 5466 case 1: type = CV_8UC1; break; 5467 case 2: type = CV_8UC2; break; 5468 case 3: type = CV_8UC3; break; 5469 case 4: type = CV_8UC4; break; 5470 } 5471 ::CvMat* lut_mat = ::cvCreateMat(256, 1, type); 5472 5473 int* lut_ptr = ArrayConverter::ToNativeArray<Int32, int>(lut); 5474 ::cvSetData( lut_mat, lut_ptr, CV_AUTO_STEP ); 5475 5476 ::cvLUT(src->Ptr, dst->Ptr, lut_mat); 5477 5478 ::cvReleaseMat(&lut_mat); 5479 delete[] lut_ptr; 5480 } 5481 /// <summary> 5482 /// 出力配列の各要素値をルックアップテーブルを用いて決定する.ルックアップテーブルが配列で指定できる簡易バージョン. 5483 /// </summary> 5484 /// <param name="src">入力配列(各要素は8ビットデータ)</param> 5485 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 5486 /// <param name="lut">要素数が256であるルックアップテーブル</param> 5487 void CV::LUT( N::CvArr^ src, N::CvArr^ dst, array<Single>^ lut ) 5488 { 5489 CHECK_NULL(src); 5490 CHECK_NULL(dst); 5491 CHECK_NULL(lut); 5492 5493 int type = 1; 5494 switch(dst->ElemChannels){ 5495 case 1: type = CV_8UC1; break; 5496 case 2: type = CV_8UC2; break; 5497 case 3: type = CV_8UC3; break; 5498 case 4: type = CV_8UC4; break; 5499 } 5500 ::CvMat* lut_mat = ::cvCreateMat(256, 1, type); 5501 5502 float* lut_ptr = ArrayConverter::ToNativeArray<Single, float>(lut); 5503 ::cvSetData( lut_mat, lut_ptr, CV_AUTO_STEP ); 5504 5505 ::cvLUT(src->Ptr, dst->Ptr, lut_mat); 5506 5507 ::cvReleaseMat(&lut_mat); 5508 delete[] lut_ptr; 5509 } 5510 /// <summary> 5511 /// 出力配列の各要素値をルックアップテーブルを用いて決定する.ルックアップテーブルが配列で指定できる簡易バージョン. 5512 /// </summary> 5513 /// <param name="src">入力配列(各要素は8ビットデータ)</param> 5514 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 5515 /// <param name="lut">要素数が256であるルックアップテーブル</param> 5516 void CV::LUT( N::CvArr^ src, N::CvArr^ dst, array<Double>^ lut ) 5517 { 5518 CHECK_NULL(src); 5519 CHECK_NULL(dst); 5520 CHECK_NULL(lut); 5521 5522 int type = 1; 5523 switch(dst->ElemChannels){ 5524 case 1: type = CV_8UC1; break; 5525 case 2: type = CV_8UC2; break; 5526 case 3: type = CV_8UC3; break; 5527 case 4: type = CV_8UC4; break; 5528 } 5529 ::CvMat* lut_mat = ::cvCreateMat(256, 1, type); 5530 5531 double* lut_ptr = ArrayConverter::ToNativeArray<Double, double>(lut); 5532 ::cvSetData( lut_mat, lut_ptr, CV_AUTO_STEP ); 5533 5534 ::cvLUT(src->Ptr, dst->Ptr, lut_mat); 5535 5536 ::cvReleaseMat(&lut_mat); 5537 delete[] lut_ptr; 5395 5538 } 5396 5539 #pragma endregion -
lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CV.h
r23006 r23036 375 375 static void LogPolar( N::CvArr^ src, N::CvArr^ dst, N::CvPoint2D32f center, Double M, Interpolation flags ); 376 376 static void LUT( N::CvArr^ src, N::CvArr^ dst, N::CvArr^ lut ); 377 static void LUT( N::CvArr^ src, N::CvArr^ dst, array<Byte>^ lut ); 378 static void LUT( N::CvArr^ src, N::CvArr^ dst, array<Int16>^ lut ); 379 static void LUT( N::CvArr^ src, N::CvArr^ dst, array<Int32>^ lut ); 380 static void LUT( N::CvArr^ src, N::CvArr^ dst, array<Single>^ lut ); 381 static void LUT( N::CvArr^ src, N::CvArr^ dst, array<Double>^ lut ); 377 382 static N::CvMat^ Mat( Int32 rows, Int32 cols, MatrixType type ); 378 383 static N::CvMat^ Mat( Int32 rows, Int32 cols, MatrixType type, array<Byte>^ data ); -
lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CvArr.cpp
r23006 r23036 1382 1382 } 1383 1383 #pragma endregion 1384 #pragma region LUT 1385 /// <summary> 1386 /// 出力配列の各要素値をルックアップテーブルを用いて決定する (cvLUT相当). 1387 /// </summary> 1388 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数).</param> 1389 /// <param name="lut">要素数が256であるルックアップテーブル(出力配列と同じデプスでなければならない).マルチチャンネルの入力/出力配列の場合,テーブルはシングルチャンネル(この場合すべてのチャンネル対して,同じテーブルを使う)か,入力/出力配列と同じチャンネル数でなければならない.</param> 1390 void CvArr::LUT( N::CvArr^ dst, N::CvArr^ lut ) 1391 { 1392 CV::LUT(this, dst, lut); 1393 } 1394 /// <summary> 1395 /// 出力配列の各要素値をルックアップテーブルを用いて決定する (cvLUT相当).ルックアップテーブルが配列で指定できる簡易バージョン. 1396 /// </summary> 1397 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 1398 /// <param name="lut">要素数が256であるルックアップテーブル</param> 1399 void CvArr::LUT( N::CvArr^ dst, array<Byte>^ lut ) 1400 { 1401 CV::LUT(this, dst, lut); 1402 } 1403 /// <summary> 1404 /// 出力配列の各要素値をルックアップテーブルを用いて決定する (cvLUT相当).ルックアップテーブルが配列で指定できる簡易バージョン. 1405 /// </summary> 1406 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 1407 /// <param name="lut">要素数が256であるルックアップテーブル</param> 1408 void CvArr::LUT( N::CvArr^ dst, array<Int16>^ lut ) 1409 { 1410 CV::LUT(this, dst, lut); 1411 } 1412 /// <summary> 1413 /// 出力配列の各要素値をルックアップテーブルを用いて決定する (cvLUT相当).ルックアップテーブルが配列で指定できる簡易バージョン. 1414 /// </summary> 1415 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 1416 /// <param name="lut">要素数が256であるルックアップテーブル</param> 1417 void CvArr::LUT( N::CvArr^ dst, array<Int32>^ lut ) 1418 { 1419 CV::LUT(this, dst, lut); 1420 } 1421 /// <summary> 1422 /// 出力配列の各要素値をルックアップテーブルを用いて決定する (cvLUT相当).ルックアップテーブルが配列で指定できる簡易バージョン. 1423 /// </summary> 1424 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 1425 /// <param name="lut">要素数が256であるルックアップテーブル</param> 1426 void CvArr::LUT( N::CvArr^ dst, array<Single>^ lut ) 1427 { 1428 CV::LUT(this, dst, lut); 1429 } 1430 /// <summary> 1431 /// 出力配列の各要素値をルックアップテーブルを用いて決定する (cvLUT相当).ルックアップテーブルが配列で指定できる簡易バージョン. 1432 /// </summary> 1433 /// <param name="dst">出力配列(任意のデプス,入力配列と同じチャンネル数)</param> 1434 /// <param name="lut">要素数が256であるルックアップテーブル</param> 1435 void CvArr::LUT( N::CvArr^ dst, array<Double>^ lut ) 1436 { 1437 CV::LUT(this, dst, lut); 1438 } 1439 #pragma endregion 1384 1440 #pragma region Merge 1385 1441 /// <summary> -
lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CvArr.h
r23006 r23036 315 315 virtual void Line( Int32 x1, Int32 y1, Int32 x2, Int32 y2, CvColor color, Int32 thickness, LineType line_type); 316 316 virtual void Line( Int32 x1, Int32 y1, Int32 x2, Int32 y2, CvColor color, Int32 thickness, LineType line_type, Int32 shift); 317 virtual void LUT( N::CvArr^ dst, N::CvArr^ lut ); 318 virtual void LUT( N::CvArr^ dst, array<Byte>^ lut ); 319 virtual void LUT( N::CvArr^ dst, array<Int16>^ lut ); 320 virtual void LUT( N::CvArr^ dst, array<Int32>^ lut ); 321 virtual void LUT( N::CvArr^ dst, array<Single>^ lut ); 322 virtual void LUT( N::CvArr^ dst, array<Double>^ lut ); 317 323 virtual void Merge( N::CvArr^ src0, N::CvArr^ src1, N::CvArr^ src2, N::CvArr^ src3 ); 318 324 virtual void Merge( array<N::CvArr^>^ src );
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)