[openrtm-commit:01133] r103 - in branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram: include/Histogram src

openrtm @ openrtm.org openrtm @ openrtm.org
2013年 11月 14日 (木) 16:48:22 JST


Author: kawauchi
Date: 2013-11-14 16:48:22 +0900 (Thu, 14 Nov 2013)
New Revision: 103

Modified:
   branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/include/Histogram/Histogram.h
   branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/src/Histogram.cpp
Log:
Histogram component: Align the indentation, and converted to the UTF-8 character code. refs #2704

Modified: branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/include/Histogram/Histogram.h
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/include/Histogram/Histogram.h	2013-10-11 08:40:29 UTC (rev 102)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/include/Histogram/Histogram.h	2013-11-14 07:48:22 UTC (rev 103)
@@ -24,15 +24,15 @@
 #include <cxcore.h>
 #include <highgui.h>
 
-#define DIMENSIONS	1				//	ƒqƒXƒgƒOƒ‰ƒ€‚ÌŽŸŒ³”
-#define UNIFORM	1					//	ˆê—l«‚ÉŠÖ‚·‚éƒtƒ‰ƒO
-#define	ACCUMULATE	0				//	ŒvŽZƒtƒ‰ƒO
-#define TRACKBAR_MAX_VALUE	200		//	ƒgƒ‰ƒbƒNƒo[‚̍őå’l
+#define DIMENSIONS	1     //	ヒストグラムの次元数
+#define UNIFORM	1         //	一様性に関するフラグ
+#define ACCUMULATE	0     //	計算フラグ
+#define TRACKBAR_MAX_VALUE	200 //	トラックバーの最大値
 
-#define SCALE_SHIFT	0				//	ƒXƒP[ƒŠƒ“ƒO‚µ‚½“ü—Í”z—ñ‚Ì—v‘f‚ɉÁ‚¦‚é’l
-#define LINE_THICKNESS	-1			//	ü‚Ì‘¾‚³
-#define	LINE_TYPE	1				//	ü‚ÌŽí—Þ
-#define SHIFT	0					//	À•W‚̏¬”“_ˆÈ‰º‚ÌŒ…‚ð•\‚·ƒrƒbƒg”
+#define SCALE_SHIFT	0     //	スケーリングした入力配列の要素に加える値
+#define LINE_THICKNESS	-1  //	線の太さ
+#define LINE_TYPE	1     //	線の種類
+#define SHIFT	0         //	座標の小数点以下の桁を表すビット数
 
 // Service implementation headers
 // <rtc-template block="service_impl_h">
@@ -299,14 +299,14 @@
   // <rtc-template block="private_operation">
   
   // </rtc-template>
-  IplImage* imageBuff;				// ƒJƒƒ‰‚̃Cƒ[ƒW
+  IplImage* imageBuff;				// カメラのイメージ
   IplImage* grayImage;				
   IplImage* destinationImage;
   IplImage* histogramImage;
   IplImage* histogramBarImage;
 
   CvHistogram *histogram;
-  CvMat* lookUpTableMatrix;			//	”Z“x‘Ήžs—ñ
+  CvMat* lookUpTableMatrix;			//	濃度対応行列
 
   int histogramSize;
   int bin_w;

Modified: branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/src/Histogram.cpp
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/src/Histogram.cpp	2013-10-11 08:40:29 UTC (rev 102)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/Histogram/src/Histogram.cpp	2013-11-14 07:48:22 UTC (rev 103)
@@ -115,35 +115,35 @@
 
 RTC::ReturnCode_t Histogram::onActivated(RTC::UniqueId ec_id)
 {
-  //  ƒCƒ[ƒW—pƒƒ‚ƒŠ‚̏‰Šú‰»
+  //  イメージ用メモリの初期化
   imageBuff = NULL;
   grayImage = NULL;
   destinationImage = NULL;
   histogramImage = NULL;
   histogramBarImage = NULL;
 
-  //  OutPort‰æ–ʃTƒCƒY‚̏‰Šú‰»
+  //  OutPort画面サイズの初期化
   m_image_histogram.width = 0;
   m_image_histogram.height = 0;
   m_image_histogramImage.width = 0;
   m_image_histogramImage.height = 0;
 
-  //  ƒqƒXƒgƒOƒ‰ƒ€‚É•`‰æ‚³‚ê‚éc–_‚̐”
+  //  ヒストグラムに描画される縦棒の数
   histogramSize = 128;
-  //  ƒqƒXƒgƒOƒ‰ƒ€‚͈̔Í
+  //  ヒストグラムの範囲
   range_0[0] = 0;
   range_0[1] = 256;
 
-  //  ƒqƒXƒgƒOƒ‰ƒ€ŠeŽŸŒ³‚Ì”ÍˆÍ‚ðŽ¦‚·”z—ñ‚̃|ƒCƒ“ƒ^
+  //  ヒストグラム各次元の範囲を示す配列のポインタ
   ranges[0] = range_0 ;
 
-  //  ƒqƒXƒgƒOƒ‰ƒ€‚𐶐¬
+  //  ヒストグラムを生成
   histogram = cvCreateHist( DIMENSIONS, &histogramSize, CV_HIST_ARRAY, ranges, UNIFORM );
 
-  //  s—ñ‚𐶐¬
+  //  行列を生成
   lookUpTableMatrix = cvCreateMatHeader( 1, 256, CV_8UC1 );
 
-  //  ”Z“x‘Ήžs—ñ‚É”Z“x‘Ήž•\‚ðƒZƒbƒg
+  //  濃度対応行列に濃度対応表をセット
   cvSetData( lookUpTableMatrix, lookUpTable, NULL );
   
   return RTC::RTC_OK;
@@ -154,7 +154,7 @@
 {
   if( imageBuff != NULL )
   {
-	  //  ƒCƒ[ƒW—pƒƒ‚ƒŠ‚̉ð•ú
+	  //  イメージ用メモリの解放
 	  cvReleaseImage(&imageBuff);
 	  cvReleaseImage(&grayImage);
 	  cvReleaseImage(&destinationImage);
@@ -168,18 +168,18 @@
 
 RTC::ReturnCode_t Histogram::onExecute(RTC::UniqueId ec_id)
 {
-	// V‚µ‚¢ƒf[ƒ^‚̃`ƒFƒbƒN
+	// 新しいデータのチェック
   if(m_image_origIn.isNew()){
-	  //  InPortƒf[ƒ^‚̓ǂݍž‚Ý
+	  //  InPortデータの読み込み
 	  m_image_origIn.read();
 
-	  //  InPort‚ÆOutPort‚̉æ–ʃTƒCƒYˆ—‚¨‚æ‚уCƒ[ƒW—pƒƒ‚ƒŠŠm•Û
+	  //  InPortとOutPortの画面サイズ処理およびイメージ用メモリ確保
 	  if(m_image_orig.width != m_image_histogram.width || m_image_orig.height != m_image_histogram.height)
 	  {
 		  m_image_histogram.width = m_image_histogramImage.width = m_image_orig.width;
 		  m_image_histogram.height = m_image_histogramImage.height = m_image_orig.height;
 
-		  //  InPort‚̃Cƒ[ƒWƒTƒCƒY‚ª•ÏX‚³‚ꂽê‡
+		  //  InPortのイメージサイズが変更された場合
 		  if( imageBuff != NULL )
 		  {
 			  cvReleaseImage(&imageBuff);
@@ -189,108 +189,108 @@
 			  cvReleaseImage(&histogramBarImage);
 		  }
 
-		  //  ƒCƒ[ƒW—pƒƒ‚ƒŠ‚ÌŠm•Û
+		  //  イメージ用メモリの確保
 		  imageBuff = cvCreateImage( cvSize(m_image_orig.width, m_image_orig.height), IPL_DEPTH_8U, 3 );
 		  grayImage = cvCreateImage( cvSize(m_image_orig.width, m_image_orig.height), IPL_DEPTH_8U, 1 );
 		  destinationImage = cvCreateImage( cvSize(m_image_orig.width, m_image_orig.height), IPL_DEPTH_8U, 1 );
 		  histogramImage = cvCreateImage( cvSize(m_image_orig.width, m_image_orig.height), IPL_DEPTH_8U, 3 );
 		  histogramBarImage = cvCreateImage( cvSize(m_image_orig.width, m_image_orig.height), IPL_DEPTH_8U, 3 );
 
-		  //	ƒqƒXƒgƒOƒ‰ƒ€‚̏c–_‚̉¡•‚ðŒvŽZ‚·‚é
+		  //	ヒストグラムの縦棒の横幅を計算する
 		  bin_w = cvRound( ( double )histogramBarImage->width / histogramSize );
 	  }
 
-	  //  InPort‚̉æ–ʃf[ƒ^‚ðƒRƒs[
+	  //  InPortの画面データをコピー
 	  memcpy(imageBuff->imageData,(void *)&(m_image_orig.pixels[0]),m_image_orig.pixels.length());
 
-	  //  RGB‚©‚çƒOƒŒ[ƒXƒP[ƒ‹‚É•ÏŠ·
+	  //  RGBからグレースケールに変換
 	  cvCvtColor( imageBuff, grayImage, CV_RGB2GRAY);
 	  
-	  int brightness = m_brightness - TRACKBAR_MAX_VALUE / 2;	//	‹P“x’l
-      int contrast = m_contrast - TRACKBAR_MAX_VALUE / 2;		//	ƒRƒ“ƒgƒ‰ƒXƒg
+	  int brightness = m_brightness - TRACKBAR_MAX_VALUE / 2;	//	輝度値
+    int contrast = m_contrast - TRACKBAR_MAX_VALUE / 2;		//	コントラスト
 
 	  if ( contrast > 0 ) {
-        double delta = 127.0 * contrast / 100.0;
-        double a = 255.0 / ( 255.0 - delta * 2 );
-        double b = a * ( brightness - delta );
-        for (int i = 0; i < 256; i++ ){
-			//	•ÏŠ·Œã‚ÌŠK’²‚ð‹‚ß‚é
-            int v = cvRound( a * i + b );
-			if( v < 0 ){
-                v = 0;
-			}
-			if( v > 255 ){
-                v = 255;
-			}
-            lookUpTable[i] = ( unsigned char )v;
+      double delta = 127.0 * contrast / 100.0;
+      double a = 255.0 / ( 255.0 - delta * 2 );
+      double b = a * ( brightness - delta );
+      for (int i = 0; i < 256; i++ ){
+        //	変換後の階調を求める
+        int v = cvRound( a * i + b );
+			  if( v < 0 ){
+          v = 0;
         }
-	   } else {
-        double delta = -128.0 * contrast / 100.0;
-        double a = (256.0 - delta * 2.0) / 255.0;
-        double b = a * brightness + delta;
-        for(int i = 0; i < 256; i++ ){
-            int v = cvRound( a * i + b);
-			if( v < 0 ){
-                v = 0;
-			}
-			if( v > 255 ){
-                v = 255;
-			}
-            lookUpTable[i] = ( unsigned char )v;
+        if( v > 255 ){
+          v = 255;
         }
+        lookUpTable[i] = ( unsigned char )v;
       }
+    } else {
+      double delta = -128.0 * contrast / 100.0;
+      double a = (256.0 - delta * 2.0) / 255.0;
+      double b = a * brightness + delta;
+      for(int i = 0; i < 256; i++ ){
+        int v = cvRound( a * i + b);
+        if( v < 0 ){
+          v = 0;
+        }
+        if( v > 255 ){
+          v = 255;
+        }
+        lookUpTable[i] = ( unsigned char )v;
+      }
+    }
 	  
-	  //  ”Z“x‘Ήžs—ñ‚ð—p‚¢‚½”Z“xŠK’²•ÏŠ·‚ðs‚¤
+	  //  濃度対応行列を用いた濃度階調変換を行う
 	  cvLUT( grayImage, destinationImage, lookUpTableMatrix );
 
-	  //  ƒOƒŒ[ƒXƒP[ƒ‹‚©‚çRGB‚É•ÏŠ·
+	  //  グレースケールからRGBに変換
 	  cvCvtColor( destinationImage, histogramImage, CV_GRAY2RGB );
 
-	  //  ‰æ‘œƒf[ƒ^‚̃TƒCƒYŽæ“¾
+	  //  画像データのサイズ取得
 	  int len = histogramImage->nChannels * histogramImage->width * histogramImage->height;
 	  m_image_histogramImage.pixels.length(len);
 
-	  //  •Ï“]‚µ‚½‰æ‘œƒf[ƒ^‚ðOutPort‚ɃRƒs[
+	  //  変転した画像データをOutPortにコピー
 	  memcpy((void *)&(m_image_histogramImage.pixels[0]), histogramImage->imageData,len);
 
-	  //  •Ï“]‚µ‚½‰æ‘œƒf[ƒ^‚ðOutPort‚©‚ço—Í
+	  //  変転した画像データをOutPortから出力
 	  m_image_histogramImageOut.write();
 
-	  //  ‰æ‘œ‚̃qƒXƒgƒOƒ‰ƒ€‚ðŒvŽZ‚·‚é
+	  //  画像のヒストグラムを計算する
 	  cvCalcHist( &destinationImage, histogram, ACCUMULATE, NULL );
 
 	  float max_value = 0;
-	  //  ƒqƒXƒgƒOƒ‰ƒ€’l‚̍őå’l‚𓾂é
-      cvGetMinMaxHistValue( histogram, NULL, &max_value, NULL, NULL );
+	  //  ヒストグラム値の最大値を得る
+    cvGetMinMaxHistValue( histogram, NULL, &max_value, NULL, NULL );
 
-	  //  ƒqƒXƒgƒOƒ‰ƒ€‚ðÅ‘å’l‚É‚æ‚Á‚Đ³‹K‰»‚·‚é
+	  //  ヒストグラムを最大値によって正規化する
 	  cvConvertScale( histogram->bins, histogram->bins, 
 		( ( double )histogramBarImage->height ) / max_value, SCALE_SHIFT );
 
-	  //	ƒqƒXƒgƒOƒ‰ƒ€‰æ‘œ‚𔒂ŏ‰Šú‰»‚·‚é
+	  //	ヒストグラム画像を白で初期化する
 	  cvSet( histogramBarImage, cvScalarAll( 255 ), NULL );
 
-	  //	ƒqƒXƒgƒOƒ‰ƒ€‚̏c–_‚ð•`‰æ‚·‚é
+	  //	ヒストグラムの縦棒を描画する
 	  for ( int i = 0; i < histogramSize; i++ ) {
-          cvRectangle(
-		  	histogramBarImage,
-		  	cvPoint( i * bin_w, histogramBarImage->height ),
-			cvPoint( ( i + 1 ) * bin_w,histogramBarImage->height - cvRound( cvGetReal1D( histogram->bins, i) ) ),
-			cvScalarAll( 0 ),
-			LINE_THICKNESS,
-			LINE_TYPE,
-			SHIFT
-		  );
+      cvRectangle(
+        histogramBarImage,
+        cvPoint( i * bin_w, histogramBarImage->height ),
+        cvPoint( ( i + 1 ) * bin_w,histogramBarImage->height - cvRound( cvGetReal1D( histogram->bins, i) ) ),
+        cvScalarAll( 0 ),
+        LINE_THICKNESS,
+        LINE_TYPE,
+        SHIFT
+      );
 	  }
 
-	  //  ‰æ‘œƒf[ƒ^‚̃TƒCƒYŽæ“¾
+	  //  画像データのサイズ取得
 	  len = histogramBarImage->nChannels * histogramBarImage->width * histogramBarImage->height;
 	  m_image_histogram.pixels.length(len);
 
-	  //  •Ï“]‚µ‚½‰æ‘œƒf[ƒ^‚ðOutPort‚ɃRƒs[
+	  //  変転した画像データをOutPortにコピー
 	  memcpy((void *)&(m_image_histogram.pixels[0]), histogramBarImage->imageData,len);
 
-	  //  •Ï“]‚µ‚½‰æ‘œƒf[ƒ^‚ðOutPort‚©‚ço—Í
+	  //  変転した画像データをOutPortから出力
 	  m_image_histogramOut.write();
 
   }



More information about the openrtm-commit mailing list