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:楕円" " 侵食デモ」、 39 &erosion_elem 、max_elem、 40 侵食); 41 42 createTrackbar(" カーネルサイズ:\ nは2N +1 "、" 侵食デモ" 、 43 &erosion_size、max_kernel_size、 44 浸食); 45 46 /// 创建膨胀トラックバー 47 createTrackbar(" 要素:\ nは0:のRect \ nは1:クロス\ nは2:楕円"、" 散大デモ" 、 48 &dilation_elem、max_elem、 49 拡張術)。 50 51 createTrackbar(" カーネルサイズ:\ nは2N +1 "、" 散大デモ" 、 52 &dilation_size、max_kernel_size、 53 拡張術)。 54 55 /// デフォルト開始 56 侵食(0、0 ); 57 散大(0、0 ); 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 + 1、2 * 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 + 1、2 * dilation_size + 1 )、 90 ポイント(dilation_size、dilation_size))。 91 /// 膨胀操作 92 DILATE(SRC、dilation_dst、要素) 93 関数imshow(" 散大デモ" 、dilation_dst)。 94 }