Changeset 24259

Show
Ignore:
Timestamp:
11/19/08 15:03:53 (5 years ago)
Author:
schima
Message:

書式を変更.

Location:
lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample
Files:
32 modified

Legend:

Unmodified
Added
Removed
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Program.cs

    r24213 r24259  
    4444            //Sample.Contour(); 
    4545            // System.Drawing.Bitmapへの変換 
    46             Sample.ConvertToBitmap(); 
     46            //Sample.ConvertToBitmap(); 
    4747            // System.Windows.Media.Imaging.WriteableBitmapへの変換 
    4848            //Sample.ConvertToWriteableBitmap(); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/BoundingRect.cs

    r23096 r24259  
    1111        /// 点列を包含する矩形  
    1212        /// </summary> 
    13         public static void BoundingRect() 
    14         { 
     13        public static void BoundingRect() { 
    1514            // cvBoundingRect  
    1615            // 点列を包含する矩形を求める 
     
    2625                CvPoint[] points = new CvPoint[50]; 
    2726                for (int i = 0; i < 50; i++) { 
    28                     points[i] = new CvPoint(){ 
     27                    points[i] = new CvPoint() { 
    2928                        X = (int)(rng.RandInt() % (img.Width / 2) + img.Width / 4), 
    3029                        Y = (int)(rng.RandInt() % (img.Height / 2) + img.Height / 4) 
     
    4342                    img.Circle(pt, 3, new CvColor(0, 255, 0), CV.CV_FILLED); 
    4443                } 
    45                 //*/  
     44                //*/ 
    4645                // (3)点列を包含する矩形を求めて描画する 
    4746                CvRect rect = CV.BoundingRect(points); 
     
    5554    } 
    5655} 
    57  
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/CalibrateCamera.cs

    r23096 r24259  
    1212        /// カメラキャリブレーション 
    1313        /// </summary> 
    14         public static void CalibrateCamera() 
    15         { 
     14        public static void CalibrateCamera() { 
    1615            const int IMAGE_NUM = 3;           // 画像数 
    1716            const int PAT_ROW = 7;              // パターンの行数  
     
    4645            // (3)チェスボード(キャリブレーションパターン)のコーナー検出 
    4746            int found_num = 0; 
    48             List<CvPoint2D32f> allCorners = new List<CvPoint2D32f>(ALL_POINTS);             
     47            List<CvPoint2D32f> allCorners = new List<CvPoint2D32f>(ALL_POINTS); 
    4948            int[] p_count = new int[IMAGE_NUM]; 
    5049            using (CvWindow window = new CvWindow("Calibration", WindowMode.AutoSize)) { 
     
    5756                        Debug.Print("ok"); 
    5857                        found_num++; 
    59                     } else { 
     58                    } 
     59                    else { 
    6060                        Debug.Print("fail"); 
    6161                    } 
     
    101101                img.Dispose(); 
    102102            } 
    103              
     103 
    104104        } 
    105105    } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Capture.cs

    r21345 r24259  
    1111        /// キャプチャした動画の再生 
    1212        /// </summary> 
    13         public static void Capture() 
    14         { 
     13        public static void Capture() { 
    1514            // AVIファイルからのキャプチャ 
    1615            /* 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Contour.cs

    r23096 r24259  
    1111        /// 輪郭領域の面積と輪郭の長さ 
    1212        /// </summary> 
    13         public static void Contour() 
    14         { 
     13        public static void Contour() { 
    1514            // cvContourArea, cvArcLength 
    1615            // 輪郭によって区切られた領域の面積と,輪郭の長さを求める 
     
    2625                CvRNG rng = new CvRNG((ulong)DateTime.Now.Ticks); 
    2726                double scale = rng.RandReal() + 0.5; 
    28                 CvPoint pt0 = new CvPoint{ 
     27                CvPoint pt0 = new CvPoint { 
    2928                    X = (int)(Math.Cos(0) * SIZE / 4 * scale + SIZE / 2), 
    3029                    Y = (int)(Math.Sin(0) * SIZE / 4 * scale + SIZE / 2) 
     
    3433                for (int i = 1; i < 20; i++) { 
    3534                    scale = rng.RandReal() + 0.5; 
    36                     CvPoint pt1 = new CvPoint{ 
     35                    CvPoint pt1 = new CvPoint { 
    3736                        X = (int)(Math.Cos(i * 2 * Math.PI / 20) * SIZE / 4 * scale + SIZE / 2), 
    3837                        Y = (int)(Math.Sin(i * 2 * Math.PI / 20) * SIZE / 4 * scale + SIZE / 2) 
     
    4342                    img.Circle(pt0, 3, CvColor.Green, CV.FILLED); 
    4443                    points.Push(pt0); 
    45                 }  
     44                } 
    4645                img.Line(pt0, points.GetElem<CvPoint>(0).Value, CvColor.Green, 2); 
    4746                // (3)包含矩形,面積,長さを求める 
     
    5049                double length = points.ArcLength(CvSlice.WholeSeq, 1); 
    5150                // (4)結果を画像に書き込む 
    52                 img.Rectangle( new CvPoint(rect.X, rect.Y), new CvPoint(rect.X + rect.Width, rect.Y + rect.Height), CvColor.Red, 2); 
     51                img.Rectangle(new CvPoint(rect.X, rect.Y), new CvPoint(rect.X + rect.Width, rect.Y + rect.Height), CvColor.Red, 2); 
    5352                string text_area = string.Format("Area:   wrect={0}, contour={1}", rect.Width * rect.Height, area); 
    5453                string text_length = string.Format("Length: rect={0}, contour={1}", 2 * (rect.Width + rect.Height), length); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/ConvertToWriteableBitmap.cs

    r23005 r24259  
    1515        /// System.Windows.Media.Imaging.WriteableBitmapへの変換 
    1616        /// </summary> 
    17         public static void ConvertToWriteableBitmap() 
    18         { 
     17        public static void ConvertToWriteableBitmap() { 
    1918            WriteableBitmap wb = null; 
    2019 
     
    3130            // WPFのWindowに表示してみる 
    3231            Image image = new Image() { Source = wb }; 
    33             Window window = new Window(){  
     32            Window window = new Window() { 
    3433                Title = "from IplImage to WriteableBitmap", 
    3534                Width = wb.Width, 
    3635                Height = wb.Height, 
    3736                Content = image 
    38             };     
    39        
     37            }; 
     38 
    4039            Application app = new Application(); 
    4140            app.Run(window); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/CornerDetect.cs

    r23096 r24259  
    1111        /// コーナーの検出 
    1212        /// </summary> 
    13         public static void CornerDetect() 
    14         { 
     13        public static void CornerDetect() { 
    1514            // cvGoodFeaturesToTrack, cvFindCornerSubPix 
    1615            // 画像中のコーナー(特徴点)検出 
    1716 
    18             int corner_count = 150;   
    19              
     17            int corner_count = 150; 
     18 
    2019            using (IplImage dst_img1 = new IplImage(Const.IMAGE_LENNA, LoadMode.AnyColor | LoadMode.AnyDepth)) 
    2120            using (IplImage dst_img2 = dst_img1.Clone()) 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/DFT.cs

    r23213 r24259  
    1111        /// 離散フーリエ変換 
    1212        /// </summary> 
    13         public static void DFT() 
    14         { 
     13        public static void DFT() { 
    1514            // cvDFT 
    1615            // 離散フーリエ変換を用いて,振幅画像を生成する. 
    17              
    18             using (IplImage src_img = new IplImage(Const.IMAGE_GORYOKAKU, LoadMode.GrayScale))  
     16 
     17            using (IplImage src_img = new IplImage(Const.IMAGE_GORYOKAKU, LoadMode.GrayScale)) 
    1918            using (IplImage realInput = CV.CreateImage(src_img.Size, BitDepth.F64, 1)) 
    2019            using (IplImage imaginaryInput = CV.CreateImage(src_img.Size, BitDepth.F64, 1)) 
    21             using (IplImage complexInput = CV.CreateImage(src_img.Size, BitDepth.F64, 2)) {                 
     20            using (IplImage complexInput = CV.CreateImage(src_img.Size, BitDepth.F64, 2)) { 
    2221                // (1)入力画像を実数配列にコピーし,虚数配列とマージして複素数平面を構成 
    2322                CV.Scale(src_img, realInput, 1.0, 0.0); 
     
    2726                int dft_M = CV.GetOptimalDFTSize(src_img.Height - 1); 
    2827                int dft_N = CV.GetOptimalDFTSize(src_img.Width - 1); 
    29                 using (CvMat dft_A = CV.CreateMat(dft_M, dft_N, MatrixType.F64C2))  
     28                using (CvMat dft_A = CV.CreateMat(dft_M, dft_N, MatrixType.F64C2)) 
    3029                using (IplImage image_Re = new IplImage(new CvSize(dft_N, dft_M), BitDepth.F64, 1)) 
    3130                using (IplImage image_Im = new IplImage(new CvSize(dft_N, dft_M), BitDepth.F64, 1)) { 
     
    5251                    cvShiftDFT(image_Re, image_Re); 
    5352                    // (8)振幅画像のピクセル値が0.0-1.0に分布するようにスケーリング 
    54                     double m, M;  
     53                    double m, M; 
    5554                    CV.MinMaxLoc(image_Re, out m, out M); 
    5655                    CV.Scale(image_Re, image_Re, 1.0 / (M - m), 1.0 * (-m) / (M - m)); 
    57                     using(CvWindow w_image = new CvWindow("Image", WindowMode.AutoSize, src_img)) 
     56                    using (CvWindow w_image = new CvWindow("Image", WindowMode.AutoSize, src_img)) 
    5857                    using (CvWindow w_magnitude = new CvWindow("Magnitude", WindowMode.AutoSize, image_Re)) { 
    5958                        CV.WaitKey(0); 
     
    6968        /// <param name="src_arr"></param> 
    7069        /// <param name="dst_arr"></param> 
    71         private static void cvShiftDFT(CvArr src_arr, CvArr dst_arr) 
    72         {             
     70        private static void cvShiftDFT(CvArr src_arr, CvArr dst_arr) { 
    7371            CvSize size = CV.GetSize(src_arr); 
    7472            CvSize dst_size = CV.GetSize(dst_arr); 
     
    105103                CV.Copy(q1, d3, null); 
    106104                CV.Copy(q2, d4, null); 
    107             } else {      /* インプレースモード */ 
     105            } 
     106            else {      /* インプレースモード */ 
    108107                CV.Copy(q3, tmp, null); 
    109108                CV.Copy(q1, q3, null); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Deraunay.cs

    r22624 r24259  
    1111        /// ドロネー 
    1212        /// </summary> 
    13         public static void Delaunay() 
    14         { 
     13        public static void Delaunay() { 
    1514            CvRect rect = new CvRect(0, 0, 600, 600); 
    1615            CvColor active_facet_color = new CvColor(255, 0, 0); 
     
    5655        /// <param name="img"></param> 
    5756        /// <param name="active_color"></param> 
    58         private static void locate_point(CvSubdiv2D subdiv, CvPoint2D32f fp, IplImage img, CvScalar active_color) 
    59         { 
     57        private static void locate_point(CvSubdiv2D subdiv, CvPoint2D32f fp, IplImage img, CvScalar active_color) { 
    6058            CvSubdiv2DEdge e; 
    6159            CvSubdiv2DEdge e0 = 0; 
    6260            CvSubdiv2DPoint p = null; 
    6361 
    64            subdiv.Locate(fp, out e0, out p); 
     62            subdiv.Locate(fp, out e0, out p); 
    6563 
    6664            if (e0 != 0) { 
     
    8280        /// <param name="delaunay_color"></param> 
    8381        /// <param name="voronoi_color"></param> 
    84         private static void draw_subdiv(IplImage img, CvSubdiv2D subdiv, CvColor delaunay_color, CvColor voronoi_color) 
    85         { 
     82        private static void draw_subdiv(IplImage img, CvSubdiv2D subdiv, CvColor delaunay_color, CvColor voronoi_color) { 
    8683            CvSeqReader reader = new CvSeqReader(); 
    8784            int total = subdiv.Edges.Total; 
     
    108105        /// <param name="edge"></param> 
    109106        /// <param name="color"></param> 
    110         private static void draw_subdiv_edge(IplImage img, CvSubdiv2DEdge edge, CvScalar color) 
    111         { 
     107        private static void draw_subdiv_edge(IplImage img, CvSubdiv2DEdge edge, CvScalar color) { 
    112108            CvSubdiv2DPoint org_pt = edge.EdgeOrg(); 
    113109            CvSubdiv2DPoint dst_pt = edge.EdgeDst(); 
     
    129125        /// <param name="subdiv"></param> 
    130126        /// <param name="img"></param> 
    131         private static void paint_voronoi(CvSubdiv2D subdiv, IplImage img) 
    132         { 
     127        private static void paint_voronoi(CvSubdiv2D subdiv, IplImage img) { 
    133128            CvSeqReader reader = new CvSeqReader(); 
    134129            int total = subdiv.Edges.Total; 
     
    157152        /// <param name="img"></param> 
    158153        /// <param name="edge"></param> 
    159         private static void draw_subdiv_facet(IplImage img, CvSubdiv2DEdge edge) 
    160         { 
     154        private static void draw_subdiv_facet(IplImage img, CvSubdiv2DEdge edge) { 
    161155            CvSubdiv2DEdge t = edge; 
    162156            int count = 0; 
     
    196190        /// <param name="fp"></param> 
    197191        /// <param name="color"></param> 
    198         private static void draw_subdiv_point(IplImage img, CvPoint2D32f fp, CvColor color) 
    199         { 
     192        private static void draw_subdiv_point(IplImage img, CvPoint2D32f fp, CvColor color) { 
    200193            img.Circle(fp, 3, color, CV.FILLED, LineType.AntiAlias, 0); 
    201194        } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/DistTransform.cs

    r23096 r24259  
    1111        /// 距離変換とその可視化 
    1212        /// </summary> 
    13         public static void DistTransform() 
    14         { 
     13        public static void DistTransform() { 
    1514            // cvDistTransform 
    1615            // 入力画像に対して距離変換を行ない,結果を0-255に正規化し可視化する 
    1716 
    1817            // (1)画像を読み込み 
    19             using (IplImage src = new IplImage(Const.IMAGE_LENNA, LoadMode.GrayScale)){ 
    20                 if (src.Depth != BitDepth.U8){ 
     18            using (IplImage src = new IplImage(Const.IMAGE_LENNA, LoadMode.GrayScale)) { 
     19                if (src.Depth != BitDepth.U8) { 
    2120                    throw new Exception("Invalid depth"); 
    2221                } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Edge.cs

    r21480 r24259  
    1111        /// エッジ検出 
    1212        /// </summary> 
    13         public static void Edge() 
    14         { 
     13        public static void Edge() { 
    1514            using (IplImage src = new IplImage(Const.IMAGE_LENNA, LoadMode.GrayScale)) 
    1615            using (IplImage temp = new IplImage(src.Size, BitDepth.S16, 1)) 
    17             using (IplImage dst_sobel = new IplImage(src.Size, BitDepth.U8, 1))  
    18             using (IplImage dst_laplace = new IplImage(src.Size, BitDepth.U8, 1))  
     16            using (IplImage dst_sobel = new IplImage(src.Size, BitDepth.U8, 1)) 
     17            using (IplImage dst_laplace = new IplImage(src.Size, BitDepth.U8, 1)) 
    1918            using (IplImage dst_canny = new IplImage(src.Size, BitDepth.U8, 1)) { 
    2019                // Sobel 
     
    3029                using (CvWindow w_sobel = new CvWindow("sobel", dst_sobel)) 
    3130                using (CvWindow w_laplace = new CvWindow("laplace", dst_laplace)) 
    32                 using (CvWindow w_canny = new CvWindow("canny", dst_canny)) {                   
     31                using (CvWindow w_canny = new CvWindow("canny", dst_canny)) { 
    3332                    CvWindow.WaitKey(); 
    3433                } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/FaceDetect.cs

    r23010 r24259  
    1212        /// 顔の検出 
    1313        /// </summary> 
    14         public static void FaceDetect() 
    15         { 
     14        public static void FaceDetect() { 
    1615            // CvHaarClassifierCascade, cvHaarDetectObjects 
    1716            // 顔を検出するためにHaar分類器のカスケードを用いる 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/FileStorage.cs

    r23096 r24259  
    1212        /// データのファイルストレージへの書き込み・読み込み 
    1313        /// </summary> 
    14         public static void FileStorage() 
    15         {             
     14        public static void FileStorage() { 
    1615            const string fileNameImage = "images.xml"; 
    1716            const string fileNameSeq = "sequence.yml"; 
     
    3130        /// </summary> 
    3231        /// <param name="fileName">書きこむXML or YAMLファイル</param> 
    33         private static void SampleFileStorageWriteImage(string fileName) 
    34         { 
     32        private static void SampleFileStorageWriteImage(string fileName) { 
    3533            // cvWrite, cvWriteComment 
    3634            // IplImage構造体の情報をファイルに保存する 
     
    6159        /// 画像データのファイルストレージからの読み込み         
    6260        /// <param name="fileName">読み込むXML or YAMLファイル</param> 
    63         private static void SampleFileStorageReadImage(string fileName) 
    64         { 
     61        private static void SampleFileStorageReadImage(string fileName) { 
    6562            IplImage color_img, gray_img; 
    6663            // (1)ファイルを読み込む 
    67             using(CvFileStorage fs = new CvFileStorage(fileName, null, FileStorageMode.Read)){ 
     64            using (CvFileStorage fs = new CvFileStorage(fileName, null, FileStorageMode.Read)) { 
    6865                CvFileNode node; 
    6966                node = fs.GetFileNodeByName(null, "color_img"); 
     
    7168                node = fs.GetFileNodeByName(null, "gray_img"); 
    7269                gray_img = fs.Read<IplImage>(node); 
    73             }  
     70            } 
    7471            // (2)ROI情報を取得し矩形を描いた後,解放 
    7572            CvRect roi_color = color_img.GetROI(); 
     
    7875            gray_img.ResetROI(); 
    7976            color_img.Rectangle( 
    80                 new CvPoint (roi_color.X, roi_color.Y),  
    81                 new CvPoint (roi_color.X + roi_color.Width, roi_color.Y + roi_color.Height),  
     77                new CvPoint(roi_color.X, roi_color.Y), 
     78                new CvPoint(roi_color.X + roi_color.Width, roi_color.Y + roi_color.Height), 
    8279                CvColor.Red 
    83             );  
     80            ); 
    8481            gray_img.Rectangle( 
    85                 new CvPoint (roi_gray.X, roi_gray.Y),  
    86                 new CvPoint (roi_gray.X + roi_gray.Width, roi_gray.Y + roi_gray.Height),  
     82                new CvPoint(roi_gray.X, roi_gray.Y), 
     83                new CvPoint(roi_gray.X + roi_gray.Width, roi_gray.Y + roi_gray.Height), 
    8784                CvColor.Black 
    8885            ); 
     
    9087            using (CvWindow w_color = new CvWindow("Color Image", WindowMode.AutoSize, color_img)) 
    9188            using (CvWindow w_gray = new CvWindow("Grayscale Image", WindowMode.AutoSize, gray_img)) { 
    92                 CV.WaitKey (0);   
     89                CV.WaitKey(0); 
    9390            } 
    9491            color_img.Dispose(); 
     
    10097        /// </summary> 
    10198        /// <param name="fileName">書きこむXML or YAMLファイル</param> 
    102         private static void SampleFileStorageWriteSeq(string fileName) 
    103         { 
     99        private static void SampleFileStorageWriteSeq(string fileName) { 
    104100            // cvStartWriteStruct, cvEndWriteStruct 
    105101            // 二つのエントリを持つマップのシーケンスをファイルに保存する 
     
    107103            const int SIZE = 20; 
    108104            CvRNG rng = new CvRNG((ulong)DateTime.Now.Ticks); 
    109             CvPoint[] pt = new CvPoint[SIZE];  
     105            CvPoint[] pt = new CvPoint[SIZE]; 
    110106            // (1)点列の作成 
    111107            for (int i = 0; i < pt.Length; i++) { 
     
    134130        /// </summary> 
    135131        /// <param name="fileName">書きこむXML or YAMLファイル</param> 
    136         private static void SampleFileStorageReadSeq(string fileName) 
    137         { 
     132        private static void SampleFileStorageReadSeq(string fileName) { 
    138133            // cvGetHashedKey, cvGetFileNode 
    139134            // 二つのエントリを持つマップのシーケンスをファイルから読み込む 
     
    180175                        // (5)さらに低速だが,使いやすいバージョン 
    181176                        ///* 
    182                         int x = fs.ReadIntByName(pt, "x", 0);  
    183                         int y = fs.ReadIntByName(pt, "y", 0);   
     177                        int x = fs.ReadIntByName(pt, "x", 0); 
     178                        int y = fs.ReadIntByName(pt, "y", 0); 
    184179                        //*/ 
    185180                        // (6)データを表示し,次のシーケンスノードを取得 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Histogram.cs

    r23213 r24259  
    1212        /// ヒストグラムの描画 
    1313        /// </summary> 
    14         public static void Histogram() 
    15         { 
     14        public static void Histogram() { 
    1615            // cvCalcHist 
    1716            // コントラストや明度をいろいろ変えられるサンプル 
    18   
     17 
    1918            const int HIST_SIZE = 64; 
    2019            float[] range_0 = { 0, 256 }; 
    21             float[][] ranges = { range_0 };             
     20            float[][] ranges = { range_0 }; 
    2221 
    2322            // 画像の読み込み 
     
    4847                        hist_img.Zero(); 
    4948                    }; 
    50                      
     49 
    5150                    // トラックバーの作成 
    5251                    // (OpenCVでは現在位置にポインタを渡すことでトラックバーの位置の変化が取得できるが、 
     
    6968        /// <param name="brightness"></param> 
    7069        /// <returns></returns> 
    71         private static byte[] _CalcLut(int contrast, int brightness) 
    72         { 
     70        private static byte[] _CalcLut(int contrast, int brightness) { 
    7371            byte[] lut = new byte[256]; 
    7472            /* 
     
    8886                    lut[i] = (byte)v; 
    8987                } 
    90             } else { 
     88            } 
     89            else { 
    9190                double delta = -128.0 * contrast / 100; 
    9291                double a = (256.0 - delta * 2) / 255.0; 
     
    108107        /// <param name="img"></param> 
    109108        /// <param name="hist"></param> 
    110         private static void _CalcHist(IplImage img, CvHistogram hist) 
    111         { 
     109        private static void _CalcHist(IplImage img, CvHistogram hist) { 
    112110            hist.Calc(img); 
    113111            float min_value, max_value; 
     
    121119        /// <param name="hist"></param> 
    122120        /// <param name="hist_size"></param> 
    123         private static void _DrawHist(IplImage img, CvHistogram hist, int hist_size) 
    124         { 
     121        private static void _DrawHist(IplImage img, CvHistogram hist, int hist_size) { 
    125122            img.Set(CvColor.White); 
    126123            int bin_w = CV.Round((double)img.Width / hist_size); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/HoughLines.cs

    r23096 r24259  
    1111        /// ハフ変換による直線検出 
    1212        /// </summary> 
    13         public static void HoughLines() 
    14         { 
     13        public static void HoughLines() { 
    1514            // cvHoughLines2 
    1615            // 標準的ハフ変換と確率的ハフ変換を指定して線(線分)の検出を行なう.サンプルコード内の各パラメータ値は処理例の画像に対してチューニングされている. 
    1716 
    1817            // (1)画像の読み込み  
    19             using (IplImage src_img_gray = new IplImage(Const.IMAGE_GORYOKAKU, LoadMode.GrayScale))  
     18            using (IplImage src_img_gray = new IplImage(Const.IMAGE_GORYOKAKU, LoadMode.GrayScale)) 
    2019            using (IplImage src_img_std = new IplImage(Const.IMAGE_GORYOKAKU, LoadMode.Color)) 
    2120            using (IplImage src_img_prob = src_img_std.Clone()) { 
     
    2423                using (CvMemStorage storage = new CvMemStorage()) { 
    2524                    // (3)標準的ハフ変換による線の検出と検出した線の描画 
    26                     CvSeq lines = src_img_gray.HoughLines2(storage, HoughLinesMethod.Standard, 1, Math.PI/180, 50, 0, 0); 
     25                    CvSeq lines = src_img_gray.HoughLines2(storage, HoughLinesMethod.Standard, 1, Math.PI / 180, 50, 0, 0); 
    2726                    int limit = Math.Min(lines.Total, 10); 
    28                     for (int i = 0; i < limit; i++) unsafe{ 
    29                         float* line = (float*)lines.GetElem<IntPtr>(i).Value.ToPointer();  // ポインタで取得し、float*にキャスト. ポインタ使わずに済む方法はないものか・・・ 
    30                         float rho = line[0]; 
    31                         float theta = line[1]; 
    32                         double a = Math.Cos(theta); 
    33                         double b = Math.Sin(theta); 
    34                         double x0 = a * rho; 
    35                         double y0 = b * rho; 
    36                         CvPoint pt1 = new CvPoint { X = CV.Round(x0 + 1000 * (-b)), Y = CV.Round(y0 + 1000 * (a)) }; 
    37                         CvPoint pt2 = new CvPoint { X = CV.Round(x0 - 1000 * (-b)), Y = CV.Round(y0 - 1000 * (a)) }; 
    38                         src_img_std.Line(pt1, pt2, CvColor.Red, 3, LineType.AntiAlias, 0); 
    39                     } 
     27                    for (int i = 0; i < limit; i++) unsafe { 
     28                            float* line = (float*)lines.GetElem<IntPtr>(i).Value.ToPointer();  // ポインタで取得し、float*にキャスト. ポインタ使わずに済む方法はないものか・・・ 
     29                            float rho = line[0]; 
     30                            float theta = line[1]; 
     31                            double a = Math.Cos(theta); 
     32                            double b = Math.Sin(theta); 
     33                            double x0 = a * rho; 
     34                            double y0 = b * rho; 
     35                            CvPoint pt1 = new CvPoint { X = CV.Round(x0 + 1000 * (-b)), Y = CV.Round(y0 + 1000 * (a)) }; 
     36                            CvPoint pt2 = new CvPoint { X = CV.Round(x0 - 1000 * (-b)), Y = CV.Round(y0 - 1000 * (a)) }; 
     37                            src_img_std.Line(pt1, pt2, CvColor.Red, 3, LineType.AntiAlias, 0); 
     38                        } 
    4039                    // (4)確率的ハフ変換による線分の検出と検出した線分の描画 
    4140                    lines = null; 
    42                     lines = src_img_gray.HoughLines2(storage, HoughLinesMethod.Probabilistic, 1, Math.PI/180, 50, 50, 10); 
    43                     for (int i = 0; i < lines.Total; i++) unsafe{ 
    44                         CvPoint* point = (CvPoint*)lines.GetElem<IntPtr>(i).Value.ToPointer(); 
    45                         src_img_prob.Line(point[0], point[1], CvColor.Red, 3, LineType.AntiAlias, 0); 
    46                     } 
     41                    lines = src_img_gray.HoughLines2(storage, HoughLinesMethod.Probabilistic, 1, Math.PI / 180, 50, 50, 10); 
     42                    for (int i = 0; i < lines.Total; i++) unsafe { 
     43                            CvPoint* point = (CvPoint*)lines.GetElem<IntPtr>(i).Value.ToPointer(); 
     44                            src_img_prob.Line(point[0], point[1], CvColor.Red, 3, LineType.AntiAlias, 0); 
     45                        } 
    4746                } 
    4847                // (5)検出結果表示用のウィンドウを確保し表示する 
    4948                using (CvWindow w_std = new CvWindow("Hough_line_standard", WindowMode.AutoSize, src_img_std)) 
    50                 using (CvWindow w_prob = new CvWindow("Hough_line_probabilistic", WindowMode.AutoSize, src_img_prob)) {                     
     49                using (CvWindow w_prob = new CvWindow("Hough_line_probabilistic", WindowMode.AutoSize, src_img_prob)) { 
    5150                    CvWindow.WaitKey(0); 
    5251                } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Inpaint.cs

    r23096 r24259  
    1212        /// 不要オブジェクトの除去 
    1313        /// </summary> 
    14         public static void Inpaint() 
    15         { 
     14        public static void Inpaint() { 
    1615            // cvInpaint 
    1716            // 画像の不要な文字列部分に対するマスク画像を指定して文字列を除去する 
    1817 
    19             Console.WriteLine(  
     18            Console.WriteLine( 
    2019                "Hot keys: \n" + 
    2120                "\tESC - quit the program\n" + 
     
    2928            using (IplImage img0 = new IplImage(Const.IMAGE_FRUITS, LoadMode.AnyDepth | LoadMode.AnyColor)) { 
    3029                // お絵かき用の画像を確保(マスク) 
    31                 using (IplImage img = img0.Clone())  
     30                using (IplImage img = img0.Clone()) 
    3231                using (IplImage inpaint_mask = new IplImage(img0.Size, BitDepth.U8, 1)) 
    3332                // Inpaintの出力先画像を確保 
     
    3635                    inpaint_mask.Zero(); 
    3736 
    38                     using (CvWindow w_image = new CvWindow( "image", WindowMode.AutoSize, img)){ 
     37                    using (CvWindow w_image = new CvWindow("image", WindowMode.AutoSize, img)) { 
    3938 
    4039                        // マウスイベントの処理 
    4140                        CvPoint prev_pt = new CvPoint(-1, -1); 
    42                         w_image.OnMouseCallback += delegate(MouseEvent ev, int x, int y, MouseEvent flags){ 
    43                             if( ev == MouseEvent.LButtonUp || (flags & MouseEvent.FlagLButton) == 0 ){ 
     41                        w_image.OnMouseCallback += delegate(MouseEvent ev, int x, int y, MouseEvent flags) { 
     42                            if (ev == MouseEvent.LButtonUp || (flags & MouseEvent.FlagLButton) == 0) { 
    4443                                prev_pt = new CvPoint(-1, -1); 
    45                             }else if( ev == MouseEvent.LButtonDown ){ 
     44                            } 
     45                            else if (ev == MouseEvent.LButtonDown) { 
    4646                                prev_pt = new CvPoint(x, y); 
    47                             }else if( ev == MouseEvent.MouseMove && (flags & MouseEvent.FlagLButton) != 0 ){ 
    48                                 CvPoint pt = new CvPoint(x,y); 
    49                                 if( prev_pt.X < 0 ){ 
     47                            } 
     48                            else if (ev == MouseEvent.MouseMove && (flags & MouseEvent.FlagLButton) != 0) { 
     49                                CvPoint pt = new CvPoint(x, y); 
     50                                if (prev_pt.X < 0) { 
    5051                                    prev_pt = pt; 
    5152                                } 
    52                                 inpaint_mask.Line( prev_pt, pt, CvColor.White, 5, LineType.AntiAlias, 0 ); 
    53                                 img.Line( prev_pt, pt, CvColor.White, 5, LineType.AntiAlias, 0 ); 
     53                                inpaint_mask.Line(prev_pt, pt, CvColor.White, 5, LineType.AntiAlias, 0); 
     54                                img.Line(prev_pt, pt, CvColor.White, 5, LineType.AntiAlias, 0); 
    5455                                prev_pt = pt; 
    55                                 w_image.ShowImage( img ); 
     56                                w_image.ShowImage(img); 
    5657                            } 
    5758                        }; 
    5859 
    5960                        for (; ; ) { 
    60                             switch( CvWindow.WaitKey(0)){ 
    61                             case 27:    // ESCキーで終了 
    62                                 return; 
    63                             case 'r':   // 原画像を復元 
    64                                 inpaint_mask.Zero(); 
    65                                 img0.Copy(img); 
    66                                 w_image.ShowImage(img); 
    67                                 break; 
    68                             case 'i':   // Inpaintの実行 
    69                             case '\r': 
    70                                 CvWindow w_inpaint = new CvWindow("inpainted image", WindowMode.AutoSize); 
    71                                 img.Inpaint(inpaint_mask, inpainted, 3, InpaintMethod.Telea); 
    72                                 w_inpaint.ShowImage(inpainted); 
    73                                 break;  
    74                             case 's': // 画像の保存 
    75                                 string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
    76                                 img0.SaveImage(Path.Combine(desktop, "original.png")); 
    77                                 inpaint_mask.SaveImage(Path.Combine(desktop, "mask.png")); 
    78                                 img.SaveImage(Path.Combine(desktop, "original+mask.png")); 
    79                                 inpainted.SaveImage(Path.Combine(desktop, "inpainted.png")); 
    80                                 break; 
     61                            switch (CvWindow.WaitKey(0)) { 
     62                                case 27:    // ESCキーで終了 
     63                                    return; 
     64                                case 'r':   // 原画像を復元 
     65                                    inpaint_mask.Zero(); 
     66                                    img0.Copy(img); 
     67                                    w_image.ShowImage(img); 
     68                                    break; 
     69                                case 'i':   // Inpaintの実行 
     70                                case '\r': 
     71                                    CvWindow w_inpaint = new CvWindow("inpainted image", WindowMode.AutoSize); 
     72                                    img.Inpaint(inpaint_mask, inpainted, 3, InpaintMethod.Telea); 
     73                                    w_inpaint.ShowImage(inpainted); 
     74                                    break; 
     75                                case 's': // 画像の保存 
     76                                    string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
     77                                    img0.SaveImage(Path.Combine(desktop, "original.png")); 
     78                                    inpaint_mask.SaveImage(Path.Combine(desktop, "mask.png")); 
     79                                    img.SaveImage(Path.Combine(desktop, "original+mask.png")); 
     80                                    inpainted.SaveImage(Path.Combine(desktop, "inpainted.png")); 
     81                                    break; 
    8182                            } 
    8283                        } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/KMeans.cs

    r23096 r24259  
    1111        /// クラスタリングによる減色処理 
    1212        /// </summary> 
    13         public static void KMeans() 
    14         { 
     13        public static void KMeans() { 
    1514            // cvKMeans2 
    1615            // k-means法によるクラスタリングを利用して,非常に単純な減色を行う 
     
    1817            // クラスタ数。この値を変えると色数が変わる 
    1918            const int MAX_CLUSTERS = 32; 
    20              
     19 
    2120            // (1)画像を読み込む   
    2221            using (IplImage src_img = CV.LoadImage(Const.IMAGE_LENNA, LoadMode.Color)) 
     
    2423                int size = src_img.Width * src_img.Height; 
    2524                using (CvMat color = CV.CreateMat(MAX_CLUSTERS, 1, MatrixType.F32C3)) 
    26                 using (CvMat count = CV.CreateMat(MAX_CLUSTERS, 1, MatrixType.S32C1))   
     25                using (CvMat count = CV.CreateMat(MAX_CLUSTERS, 1, MatrixType.S32C1)) 
    2726                using (CvMat clusters = CV.CreateMat(size, 1, MatrixType.S32C1)) 
    2827                using (CvMat points = CV.CreateMat(size, 1, MatrixType.F32C3)) { 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Kalman.cs

    r23096 r24259  
    1515        /// <param name="angle"></param> 
    1616        /// <returns></returns> 
    17         private static CvPoint CalcPoint(IplImage img, float angle) 
    18         { 
     17        private static CvPoint CalcPoint(IplImage img, float angle) { 
    1918            return new CvPoint { 
    2019                X = (int)Math.Round(img.Width / 2.0 + img.Width / 3.0 * Math.Cos(angle)), 
     
    2928        /// <param name="color"></param> 
    3029        /// <param name="d"></param> 
    31         private static void DrawCross(IplImage img, CvPoint center, CvColor color, int d) 
    32         { 
     30        private static void DrawCross(IplImage img, CvPoint center, CvColor color, int d) { 
    3331            img.Line(center.X - d, center.Y - d, center.X + d, center.Y + d, color, 1, 0); 
    3432            img.Line(center.X + d, center.Y - d, center.X - d, center.Y + d, color, 1, 0); 
     
    3836        /// カルマンフィルタ 
    3937        /// </summary> 
    40         public static unsafe void Kalman() 
    41         { 
     38        public static unsafe void Kalman() { 
    4239            // cvKalmanPredict, cvKalmanCorrect 
    4340            // カルマンフィルタを用いて回転する点を追跡する 
    4441 
    4542            /* 行列データ */ 
    46             float[] A = new float[] { 1, 1, 0, 1 };  
     43            float[] A = new float[] { 1, 1, 0, 1 }; 
    4744 
    4845            using (IplImage img = new IplImage(500, 500, BitDepth.U8, 3)) 
     
    9289                        DrawCross(img, predict_pt, CvColor.Green, 3); 
    9390                        img.Line(state_pt, measurement_pt, new CvColor(255, 0, 0), 3, LineType.AntiAlias, 0); 
    94                         img.Line(state_pt, predict_pt, new CvColor(255, 255, 0), 3, LineType.AntiAlias, 0);                         
     91                        img.Line(state_pt, predict_pt, new CvColor(255, 255, 0), 3, LineType.AntiAlias, 0); 
    9592 
    9693                        /* カルマンフィルタ状態を修正 */ 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/MatTest.cs

    r22624 r24259  
    1111        /// 行列演算のテスト 
    1212        /// </summary>    
    13         public static void MatTest() 
    14         { 
     13        public static void MatTest() { 
    1514            // 行列aとbを初期化 
    1615            // aはオーソドックスに1次元配列で元データを指定 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Morphology.cs

    r22624 r24259  
    1111        /// モルフォロジー変換 
    1212        /// </summary> 
    13         public static void Morphology() 
    14         { 
     13        public static void Morphology() { 
    1514            // cvMorphologyEx 
    1615            // 構造要素を指定して,様々なモルフォロジー演算を行なう 
    1716 
    1817            //(1)画像の読み込み,演算結果画像領域の確保を行なう 
    19             using (IplImage src_img = new IplImage(Const.IMAGE_LENNA, LoadMode.AnyDepth | LoadMode.AnyColor))  
     18            using (IplImage src_img = new IplImage(Const.IMAGE_LENNA, LoadMode.AnyDepth | LoadMode.AnyColor)) 
    2019            using (IplImage dst_img_dilate = src_img.Clone()) 
    2120            using (IplImage dst_img_erode = src_img.Clone()) 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/OpticalFlowBM.cs

    r22624 r24259  
    1111        /// ブロックマッチングによるオプティカルフローの計算 
    1212        /// </summary> 
    13         public static void OpticalFlowBM() 
    14         { 
     13        public static void OpticalFlowBM() { 
    1514            // cvCalcOpticalFlowBM 
    1615            // ブロックマッチングによるオプティカルフローの計算 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Perspective.cs

    r22624 r24259  
    1111        /// 画像の透視投影変換 
    1212        /// </summary> 
    13         public static void Perspective() 
    14         { 
     13        public static void Perspective() { 
    1514            // cvGetPerspectiveTransform + cvWarpPerspective 
    1615            // 画像上の4点対応より透視投影変換行列を計算し,その行列を用いて画像全体の透視投影変換を行う. 
     
    3332                using (CvMat map_matrix = CV.GetPerspectiveTransform(src_pnt, dst_pnt)) { 
    3433                    // (3)指定されたアフィン行列により,cvWarpAffineを用いて画像を回転させる 
    35                     CV.WarpPerspective(src_img, dst_img, map_matrix, Interpolation.Linear | Interpolation.FillOutliers, CvScalar.ScalarAll(100));   
     34                    CV.WarpPerspective(src_img, dst_img, map_matrix, Interpolation.Linear | Interpolation.FillOutliers, CvScalar.ScalarAll(100)); 
    3635                    // (4)結果を表示する 
    3736                    using (CvWindow w_src = new CvWindow("src", src_img)) 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/PixelAccess.cs

    r23096 r24259  
    1212        /// ピクセルデータへの直接アクセス 
    1313        /// </summary> 
    14         public static void PixelAccess() 
    15         { 
     14        public static void PixelAccess() { 
    1615            // IplImage 
    1716            // 8ビット3チャンネルカラー画像を読み込み,ピクセルデータを変更する 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/PixelSampling.cs

    r22624 r24259  
    1111        /// ピクセルサンプリング 
    1212        /// </summary> 
    13         public static void PixelSampling() 
    14         { 
     13        public static void PixelSampling() { 
    1514            // 並進移動のためのピクセルサンプリング cvGetRectSubPix 
    1615 
     
    3736            // 回転移動のためのピクセルサンプリング cvGetQuadrangleSubPix 
    3837 
    39             const int angle = 45;             
     38            const int angle = 45; 
    4039            // (1)画像の読み込み,出力用画像領域の確保を行なう 
    4140            using (IplImage src_img = new IplImage(Const.IMAGE_LENNA, LoadMode.AnyDepth | LoadMode.AnyColor)) 
    42             using (IplImage dst_img = src_img.Clone()){ 
     41            using (IplImage dst_img = src_img.Clone()) { 
    4342                // (2)回転のための行列(アフィン行列)要素を設定し,CvMat行列Mを初期化する 
    4443                float[] m = new float[6]; 
     
    4948                m[4] = m[0]; 
    5049                m[5] = src_img.Height * 0.5f; 
    51                 using (CvMat mat = new CvMat(2, 3, MatrixType.F32C1, m)){ 
     50                using (CvMat mat = new CvMat(2, 3, MatrixType.F32C1, m)) { 
    5251                    // (3)指定された回転行列により,GetQuadrangleSubPixを用いて画像全体を回転させる 
    5352                    CV.GetQuadrangleSubPix(src_img, dst_img, mat); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/PyrMeanShiftFiltering.cs

    r22624 r24259  
    1111        /// 平均値シフト法による画像のセグメント化 
    1212        /// </summary> 
    13         public static void PyrMeanShiftFiltering() 
    14         { 
     13        public static void PyrMeanShiftFiltering() { 
    1514            // cvPyrMeanShiftFiltering 
    1615            // 平均値シフト法による画像のセグメント化を行う 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/PyrSegmentation.cs

    r22624 r24259  
    1111        /// 画像ピラミッドを用いた画像の領域分割 
    1212        /// </summary> 
    13         public static void PyrSegmentation() 
    14         { 
     13        public static void PyrSegmentation() { 
    1514            // cvPyrSegmentation 
    1615            // レベルを指定して画像ピラミッドを作成し,その情報を用いて画像のセグメント化を行なう. 
    1716 
    1817            const double THRESHOLD1 = 255.0; 
    19             const double THRESHOLD2 = 50.0;; 
     18            const double THRESHOLD2 = 50.0; ; 
    2019 
    2120            // (1)画像の読み込み 
     
    2928                        X = 0, 
    3029                        Y = 0, 
    31                         Width = src_img.Width & -(1 << (level+1)), 
    32                         Height = src_img.Height & -(1 << (level+1)) 
     30                        Width = src_img.Width & -(1 << (level + 1)), 
     31                        Height = src_img.Height & -(1 << (level + 1)) 
    3332                    }; 
    3433                    src_img.ROI = roi; 
    3534                    // (3)分割結果画像出力用の画像領域を確保し,領域分割を実行 
    3635                    dst_img[level] = src_img.Clone(); 
    37                     CV.PyrSegmentation(src_img, dst_img[level], level+1, THRESHOLD1, THRESHOLD2); 
     36                    CV.PyrSegmentation(src_img, dst_img[level], level + 1, THRESHOLD1, THRESHOLD2); 
    3837                } 
    3938 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Resize.cs

    r22624 r24259  
    1111        /// 画像のサイズ変更 
    1212        /// </summary> 
    13         public static void Resize() 
    14         { 
     13        public static void Resize() { 
    1514            // cvResize 
    1615            // 指定した出力画像サイズに合うように、入力画像のサイズを変更し出力する. 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/SeqTest.cs

    r21039 r24259  
    1111        /// CvSeqのテスト 
    1212        /// </summary> 
    13         unsafe public static void SeqTest() 
    14         { 
     13        unsafe public static void SeqTest() { 
    1514            using (CvMemStorage storage = new CvMemStorage(0)) { 
    1615                CvSeq seq = new CvSeq(SeqType.EltypeS32C1, CvSeq.SizeOf, sizeof(int), storage); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Snake.cs

    r21039 r24259  
    1111        /// 輪郭検出 
    1212        /// </summary> 
    13         public static void Snake() 
    14         { 
     13        public static void Snake() { 
    1514            using (IplImage src = new IplImage(Const.IMAGE_CAKE, LoadMode.GrayScale)) 
    1615            using (IplImage dst = new IplImage(src.Size, BitDepth.U8, 3)) { 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Text.cs

    r22624 r24259  
    1111        /// テキストの描画 
    1212        /// </summary> 
    13         public static void Text() 
    14         { 
     13        public static void Text() { 
    1514            // cvInitFont, cvPutText 
    1615            // フォントを初期化して,テキストを描画する 
    17              
     16 
    1817            List<FontFace> font_face = new List<FontFace>( 
    1918                (FontFace[])Enum.GetValues(typeof(FontFace)) 
     
    2726                CvFont[] font = new CvFont[font_face.Count * 2]; 
    2827                for (int i = 0; i < font.Length; i += 2) { 
    29                     CV.InitFont(out font[i], font_face[i/2], 1.0, 1.0); 
    30                     CV.InitFont(out font[i + 1], font_face[i/2] | FontFace.Italic, 1.0, 1.0); 
     28                    CV.InitFont(out font[i], font_face[i / 2], 1.0, 1.0); 
     29                    CV.InitFont(out font[i + 1], font_face[i / 2] | FontFace.Italic, 1.0, 1.0); 
    3130                } 
    3231                // (3)フォントを指定して,テキストを描画する 
     
    3433                for (int i = 0; i < font.Length; i++) { 
    3534                    uint irandom = CV.RandInt(rng); 
    36                     CvColor rcolor = new CvColor( (byte)(irandom & 255), (byte)((irandom >> 8) & 255), (byte)((irandom >> 16) & 255) ); 
     35                    CvColor rcolor = new CvColor((byte)(irandom & 255), (byte)((irandom >> 8) & 255), (byte)((irandom >> 16) & 255)); 
    3736                    CV.PutText(img, "OpenCV sample code", new CvPoint(15, (i + 1) * 30), font[i], rcolor); 
    3837                } 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Threshold.cs

    r23213 r24259  
    1111        /// 2値化 
    1212        /// </summary> 
    13         public static void Threshold() 
    14         { 
     13        public static void Threshold() { 
    1514            using (IplImage src = new IplImage(Const.IMAGE_LENNA, LoadMode.Color)) 
    1615            using (IplImage src_gray = new IplImage(src.Size, BitDepth.U8, 1)) 
     
    2019                src_gray.Smooth(src_gray, SmoothType.Gaussian, 5); 
    2120                int threshold = 90; 
    22                 w.CreateTrackbar("threshold", threshold, 255, delegate(int pos) {  
    23                     src_gray.Threshold(dst, pos, 255, ThresholdType.Binary);                     
     21                w.CreateTrackbar("threshold", threshold, 255, delegate(int pos) { 
     22                    src_gray.Threshold(dst, pos, 255, ThresholdType.Binary); 
    2423                    w.Image = dst; 
    2524                }); 
  • lang/cpluspluscli/OpenCvSharp/sample/OpenCvSharpSample/Sample/Undistort.cs

    r23096 r24259  
    1111        /// 歪み補正 
    1212        /// </summary> 
    13         public static void Undistort() 
    14         { 
     13        public static void Undistort() { 
    1514            // cvUndistort2 
    1615            // キャリブレーションデータを利用して,歪みを補正する 
     
    1817            // (1)補正対象となる画像の読み込み 
    1918            using (IplImage src_img = new IplImage(Const.IMAGE_DISTORTION, LoadMode.Color)) 
    20             using (IplImage dst_img = src_img.Clone()){ 
     19            using (IplImage dst_img = src_img.Clone()) { 
    2120 
    2221                // (2)パラメータファイルの読み込み 
     
    3433                // (4)画像を表示,キーが押されたときに終了 
    3534                using (CvWindow w1 = new CvWindow("Distortion", WindowMode.AutoSize, src_img)) 
    36                 using (CvWindow w2 = new CvWindow("Undistortion", WindowMode.AutoSize, dst_img)){ 
     35                using (CvWindow w2 = new CvWindow("Undistortion", WindowMode.AutoSize, dst_img)) { 
    3736                    CvWindow.WaitKey(0); 
    3837                }