腐食OpenCVの拡張(侵食および拡張)

 

1つの#include " opencv2 / imgproc / imgproc.hpp " 
2の#include " opencv2 /のHighGUI / highgui.hpp " 
3の#include " highgui.h " 
4の#include <STDLIB.H>
 5の#include <stdio.hの>
 6  
7  使用して 名前空間の品種;
8  
9  /// 全局变量
10  マットSRC、erosion_dst、dilation_dst。
11  
12  INT erosion_elem = 0 13  INT erosion_size = 0 14  INTdilation_elem = 0 ;
15  INT dilation_size = 0 16  INT  CONST max_elem = 2 17  INT  CONST max_kernel_size = 21 18  
19  / * *機能ヘッダ* / 
20  空隙侵食(INTボイド * )。
21  無効拡張術(int型無効 * );
22  
23  / * * @関数メイン* / 
24  INTメイン(int型 ARGC、チャー ** ARGV)
 25  {
 26は   /// ロード画像
27    SRC =関数imread(ARGV [ 1 ]);
 28  
29    IF(!src.data)
 30    { リターン - 1 ;}
 31は 
32    /// 表示ウィンドウ作成
33はある    namedWindow(" エロージョンデモ" 、CV_WINDOW_AUTOSIZE);
 34は    namedWindow(" 散大デモ" 、CV_WINDOW_AUTOSIZE);
 35    cvMoveWindowは("拡張デモ "src.cols、 0 );
 36  
37    /// 创建腐蚀トラックバー
38    createTrackbar(" 要素:\ nは0:のRect \ nは1:クロス\ nは2:楕円" " 侵食デモ39erosion_elem 、max_elem、
 40                    侵食);
 41  
42    createTrackbar(" カーネルサイズ:\ nは2N +1 "" 侵食デモ" 43erosion_size、max_kernel_size、
 44                   浸食);
45  
46    /// 创建膨胀トラックバー
47    createTrackbar(" 要素:\ nは0:のRect \ nは1:クロス\ nは2:楕円"" 散大デモ" 48dilation_elem、max_elem、
 49                    拡張術)。
50  
51    createTrackbar(" カーネルサイズ:\ nは2N +1 "" 散大デモ" 52dilation_size、max_kernel_size、
 53                    拡張術)。
54 
55    /// デフォルト開始
56    侵食(00 );
57    散大(00 );
58  
59    waitKey(0 )。
60    リターン 0 ;
61  }
 62  
63  / * * @関数浸食   * / 
64  空隙侵食(INTボイド * 65  {
 66    のint erosion_type。
67    であれば(erosion_elem == 0){erosion_type =MORPH_RECT; }
 68    そう であれば(erosion_elem == 1){erosion_type = MORPH_CROSS。}
 69    そう であれば(erosion_elem == 2){erosion_type = MORPH_ELLIPSE。}
 70  
71    マット要素= getStructuringElement(erosion_type、
 72                                         サイズ(2 * erosion_size + 12 * erosion_size + 1 )、
 73                                         ポイント(erosion_size、erosion_size))。
74  
75    /// 腐蚀操作
76   (SRC、erosion_dst、要素)侵食。
77    関数imshow(" 侵食デモ" 、erosion_dst)。
78  }
 79  
80  / * * @関数散大* / 
81  空隙散大(INTボイド * 82  {
 83    のint dilation_type。
84    であれば(dilation_elem == 0){dilation_type = MORPH_RECT。}
 85    そう であれば(dilation_elem == 1){dilation_type = MORPH_CROSS。}
 86    、他の 場合(dilation_elem == 2){dilation_type = MORPH_ELLIPSE。}
 87  
88    マット要素= getStructuringElement(dilation_type、
 89                                         サイズ(2 * dilation_size + 12 * dilation_size + 1 )、
 90                                         ポイント(dilation_size、dilation_size))。
91    /// 膨胀操作
92    DILATE(SRC、dilation_dst、要素)
93    関数imshow(" 散大デモ" 、dilation_dst)。
94 }

おすすめ

転載: www.cnblogs.com/ybqjymy/p/12170900.html