12- 形态学操作(理解很重要)
代码及理解注释:
#include<opencv2/opencv.hpp>;
#include<iostream>;
using namespace std;
using namespace cv;
int main(int argc, char* argv) { // 12、13:形态学操作及应用-提取水平与垂直线(基于膨胀腐蚀)
Mat source1;
source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\1.jpg");
if (source1.empty()) { printf("can not load image ... \n"); return -1; }
imshow("source1原图像", source1);
/* 形态学操作类型: 二值化图像运用
开操作(MORPH_OPEN) : 先腐蚀 后 膨胀,去掉小的对象;若前景白色+白色小快 后景黑色 = 去掉白色小块
闭操作(MORPH_CLOSE): 先膨胀 后 腐蚀,填充小的对象;若前景白色+白色小快+白色有小洞 后景黑色 = 填充小洞
顶帽(MORPH_TOPHAT): 开操作 与 原图像 之间的差值图像
黑帽(MORPH_BLACKHAT): 闭操作 与 原图像 之间的差值图像
形态学梯度(MORPH_GRADIENT):膨胀减去腐蚀。又 基本梯度(包括内部梯度,XY方向梯度)
*/
Mat kernel = getStructuringElement(MORPH_RECT,Size(5,5),Point(-1,-1));
// 结构元素;矩形 ,模板(5,5)