[openrtm-commit:01129] r99 - branches/newCMakeForVC2010/ImageProcessing/opencv/components/Binarization/src

openrtm @ openrtm.org openrtm @ openrtm.org
2013年 9月 26日 (木) 17:22:12 JST


Author: kawauchi
Date: 2013-09-26 17:22:12 +0900 (Thu, 26 Sep 2013)
New Revision: 99

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

Modified: branches/newCMakeForVC2010/ImageProcessing/opencv/components/Binarization/src/Binarization.cpp
===================================================================
--- branches/newCMakeForVC2010/ImageProcessing/opencv/components/Binarization/src/Binarization.cpp	2013-09-26 04:39:49 UTC (rev 98)
+++ branches/newCMakeForVC2010/ImageProcessing/opencv/components/Binarization/src/Binarization.cpp	2013-09-26 08:22:12 UTC (rev 99)
@@ -9,7 +9,7 @@
 
 #include "Binarization.h"
 
-#define THRESHOLD_MAX_VALUE	255	//	2’l‰»‚̍ۂɎg—p‚·‚éÅ‘å’l
+#define THRESHOLD_MAX_VALUE	255	//	2値化の際に使用する最大値
 
 // Module specification
 // <rtc-template block="module_spec">
@@ -57,7 +57,7 @@
 {
 }
 
-IplImage *sourceImage;	//	Œ³‰æ‘œ—pIplImage
+IplImage *sourceImage;	//	元画像用IplImage
 
 RTC::ReturnCode_t Binarization::onInitialize()
 {
@@ -109,7 +109,7 @@
 
 RTC::ReturnCode_t Binarization::onActivated(RTC::UniqueId ec_id)
 {
-    // ƒCƒ[ƒW—pƒƒ‚ƒŠ‚ÌŠm•Û
+    // イメージ用メモリの確保
     m_image_buff       = NULL;
     m_image_binary     = NULL;
     m_image_gray       = NULL;
@@ -139,70 +139,69 @@
 
 RTC::ReturnCode_t Binarization::onExecute(RTC::UniqueId ec_id)
 {
-    // Common CV process
-    // V‚µ‚¢ƒf[ƒ^‚̃`ƒFƒbƒN
-    if (m_image_origIn.isNew()) 
+  // Common CV process
+  // 新しいデータのチェック
+  if (m_image_origIn.isNew()) 
+  {
+    // InPortデータの読み込み
+    m_image_origIn.read();
+
+    // サイズが変わったときだけ再生成する
+    if(m_in_height != m_image_orig.height || m_in_width != m_image_orig.width)
     {
-        // InPortƒf[ƒ^‚̓ǂݍž‚Ý
-        m_image_origIn.read();
+      printf("[onExecute] Size of input image is not match!\n");
 
-        // ƒTƒCƒY‚ª•Ï‚í‚Á‚½‚Æ‚«‚¾‚¯Ä¶¬‚·‚é
-        if(m_in_height != m_image_orig.height || m_in_width != m_image_orig.width)
-        {
-            printf("[onExecute] Size of input image is not match!\n");
+      m_in_height = m_image_orig.height;
+      m_in_width  = m_image_orig.width;
 
-            m_in_height = m_image_orig.height;
-            m_in_width  = m_image_orig.width;
-            
-            if(m_image_buff       != NULL)
-                cvReleaseImage(&m_image_buff);
-            if(m_image_binary     != NULL)
-                cvReleaseImage(&m_image_binary);
-            if(m_image_gray       != NULL)
-                cvReleaseImage(&m_image_gray);
-            if(m_image_dest       != NULL)
-                cvReleaseImage(&m_image_dest);
+      if(m_image_buff       != NULL)
+        cvReleaseImage(&m_image_buff);
+      if(m_image_binary     != NULL)
+        cvReleaseImage(&m_image_binary);
+      if(m_image_gray       != NULL)
+        cvReleaseImage(&m_image_gray);
+      if(m_image_dest       != NULL)
+        cvReleaseImage(&m_image_dest);
 
+      // サイズ変換のためTempメモリーをよいする
+      m_image_buff   = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 3);
+      m_image_binary = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 1);
+      m_image_gray   = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 1);
+      m_image_dest   = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 3);
+    }
 
-            // ƒTƒCƒY•ÏŠ·‚Ì‚½‚ßTempƒƒ‚ƒŠ[‚ð‚æ‚¢‚·‚é
-	        m_image_buff   = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 3);
-	        m_image_binary = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 1);
-            m_image_gray   = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 1);
-	        m_image_dest   = cvCreateImage(cvSize(m_in_width, m_in_height), IPL_DEPTH_8U, 3);
-        }
+    // InPortの画像データをIplImageのimageDataにコピー
+    memcpy(m_image_buff->imageData,(void *)&(m_image_orig.pixels[0]),m_image_orig.pixels.length());
 
-        // InPort‚̉摜ƒf[ƒ^‚ðIplImage‚ÌimageData‚ɃRƒs[
-        memcpy(m_image_buff->imageData,(void *)&(m_image_orig.pixels[0]),m_image_orig.pixels.length());
+    // Anternative process
+    //	BGRからグレースケールに変換する
+    cvCvtColor( m_image_buff, m_image_gray, CV_BGR2GRAY );
 
-        // Anternative process
-       	//	BGR‚©‚çƒOƒŒ[ƒXƒP[ƒ‹‚É•ÏŠ·‚·‚é
-	    cvCvtColor( m_image_buff, m_image_gray, CV_BGR2GRAY );
+    //	グレースケールから2値に変換する
+    cvThreshold( m_image_gray, m_image_binary, m_nThresholdLv, THRESHOLD_MAX_VALUE, CV_THRESH_BINARY );
 
-	    //	ƒOƒŒ[ƒXƒP[ƒ‹‚©‚ç2’l‚É•ÏŠ·‚·‚é
-	    cvThreshold( m_image_gray, m_image_binary, m_nThresholdLv, THRESHOLD_MAX_VALUE, CV_THRESH_BINARY );
+    // Convert to 3channel image
+    cvMerge(m_image_binary, m_image_binary, m_image_binary, NULL, m_image_dest);
 
-        // Convert to 3channel image
-        cvMerge(m_image_binary, m_image_binary, m_image_binary, NULL, m_image_dest);
+    // Common process
+    // 画像データのサイズ取得
+    int len = m_image_dest->nChannels * m_image_dest->width * m_image_dest->height;
+          
+    // 画面のサイズ情報を入れる
+    m_image_output.pixels.length(len);        
+    m_image_output.width  = m_image_dest->width;
+    m_image_output.height = m_image_dest->height;
 
-        // Common process
-        // ‰æ‘œƒf[ƒ^‚̃TƒCƒYŽæ“¾
-        int len = m_image_dest->nChannels * m_image_dest->width * m_image_dest->height;
-                
-        // ‰æ–ʂ̃TƒCƒYî•ñ‚ð“ü‚ê‚é
-        m_image_output.pixels.length(len);        
-        m_image_output.width  = m_image_dest->width;
-        m_image_output.height = m_image_dest->height;
+    // 反転した画像データをOutPortにコピー
+    memcpy((void *)&(m_image_output.pixels[0]), m_image_dest->imageData,len);
 
-        // ”½“]‚µ‚½‰æ‘œƒf[ƒ^‚ðOutPort‚ɃRƒs[
-        memcpy((void *)&(m_image_output.pixels[0]), m_image_dest->imageData,len);
+    // 反転した画像データをOutPortから出力する。
+    m_image_outputOut.write();
 
-        // ”½“]‚µ‚½‰æ‘œƒf[ƒ^‚ðOutPort‚©‚ço—Í‚·‚éB
-        m_image_outputOut.write();
+    //cvWaitKey( 0 );
+  }
 
-        //cvWaitKey( 0 );
-    }
-
-    return RTC::RTC_OK;
+  return RTC::RTC_OK;
 }
 
 /*



More information about the openrtm-commit mailing list