OpenCV学习第十一篇:形态学操作
来源:互联网 发布:香水时代的淘宝店怎么 编辑:程序博客网 时间:2024/06/13 22:05
开操作-open——CV_MOP_OPEN
先腐蚀,后膨胀
可以去掉小的对象,假设对象是前景色,背景是黑色
相关api
Mat kernel = getStructuringElement(MORPH_RECT, Size(11, 11), Point(-1, -1))
morphologyEx(src, dst, CV_MOP_GRADIENT, kernel)
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { Mat src, dst; src = imread("F:/识图/形态学测试.jpg"); if (src.empty()) { printf("could not image!"); return -1; } namedWindow("Input Image", CV_WINDOW_AUTOSIZE); imshow("Input Image", src); //获取结构元素 Mat kernel = getStructuringElement(MORPH_RECT, Size(11, 11), Point(-1, -1)); morphologyEx(src, dst, CV_MOP_OPEN, kernel); imshow("outout image", dst); waitKey(0); return 0;}
效果:
闭操作-close—CV_MOP_CLOSE
先膨胀,后腐蚀
可以填充小的洞,假设对象是前景色,背景是黑色
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { Mat src, dst; src = imread("F:/识图/形态学测试.jpg"); if (src.empty()) { printf("could not image!"); return -1; } namedWindow("Input Image", CV_WINDOW_AUTOSIZE); imshow("Input Image", src); //获取结构元素 Mat kernel = getStructuringElement(MORPH_RECT, Size(21, 21), Point(-1, -1)); morphologyEx(src, dst, CV_MOP_CLOSE, kernel); imshow("outout image", dst); waitKey(0); return 0;}
效果:
形态学梯度-Morphological Gradient—-CV_MOP_GRADIENT
膨胀后腐蚀
又称为基本梯度(内部梯度和方向梯度)
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { Mat src, dst; src = imread("F:/识图/形态学测试.jpg"); if (src.empty()) { printf("could not image!"); return -1; } namedWindow("Input Image", CV_WINDOW_AUTOSIZE); imshow("Input Image", src); //获取结构元素 Mat kernel = getStructuringElement(MORPH_RECT, Size(21, 21), Point(-1, -1)); morphologyEx(src, dst, CV_MOP_GRADIENT, kernel); imshow("outout image", dst); waitKey(0); return 0;}
效果:
顶帽-top hat—CV_MOP_TOPHAT
顶帽是原图像与开操作之间的差值图像
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { Mat src, dst; src = imread("F:/识图/形态学测试.jpg"); if (src.empty()) { printf("could not image!"); return -1; } namedWindow("Input Image", CV_WINDOW_AUTOSIZE); imshow("Input Image", src); //获取结构元素 Mat kernel = getStructuringElement(MORPH_RECT, Size(21, 21), Point(-1, -1)); morphologyEx(src, dst, CV_MOP_TOPHAT, kernel); imshow("outout image", dst); waitKey(0); return 0;}
效果:
黑帽-black hat——CV_MOP_BLACKHAT
黑帽是闭操作与源图像的差值图像
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { Mat src, dst; src = imread("F:/识图/形态学测试.jpg"); if (src.empty()) { printf("could not image!"); return -1; } namedWindow("Input Image", CV_WINDOW_AUTOSIZE); imshow("Input Image", src); //获取结构元素 Mat kernel = getStructuringElement(MORPH_RECT, Size(21, 21), Point(-1, -1)); morphologyEx(src, dst, CV_MOP_BLACKHAT, kernel); imshow("outout image", dst); waitKey(0); return 0;}
效果:
阅读全文
0 0
- OpenCV学习第十一篇:形态学操作
- 学习OpenCV---形态学操作
- opencv学习笔记--形态学操作
- OpenCV学习之形态学操作
- OpenCV学习之形态学操作
- Opencv学习笔记(五)--形态学操作
- OpenCV形态学操作
- OpenCV形态学操作
- opencv之形态学操作
- OpenCV形态学操作
- opencv中的形态学操作
- OpenCV形态学操作
- OpenCV形态学操作
- [转]OpenCV形态学操作
- OpenCV形态学操作
- OpenCV形态学相关操作
- OpenCv形态学操作
- OpenCV--形态学操作
- Jzoj5245 Competing Souls
- php系统参数设置
- postgresql zip install
- 克隆虚拟机centOS
- 简单了解树和二叉树
- OpenCV学习第十一篇:形态学操作
- Covering HDU
- 实训的第一次博客
- MySQL主从复制原理及搭建
- 简析分布式集群中的session一致性
- 操作系统知识清单
- 51NOD
- 学习TCP/IP协议笔记
- Struts加Hibernate实现web留言本