通过一个特定的结构元素 腐蚀 一个图像。
- void cv::erode
- (
- InputArray src,
- OutputArray dst,
- InputArray kernel,
- Point anchor = Point(-1,-1),
- int iterations = 1,
- int borderType = BORDER_CONSTANT,
- const Scalar & borderValue = morphologyDefaultBorderValue()
- )
src | 源图像 |
dst | 输出图像 |
kernel | 用于腐蚀的结构元素 ● 如果元素=Mat(),则使用3 x 3矩形结构元素。 ● 可以使用getStructuringElement创建内核。 |
anchor | 锚点在元素内的位置(默认值(-1,-1)表示锚位于元素中心。) |
iterations | 腐蚀操作的迭代次数 |
borderType | 图像边框扩展模式(可查阅BorderTypes,但不支持BORDER_WRAP) |
borderValue | 恒定边界的边界值 |
- #include "widget.h"
- #include "ui_widget.h"
-
- #include <opencv2/core/core.hpp>
- #include <opencv2/highgui/highgui.hpp>
- #include <opencv2/imgproc/imgproc.hpp>
-
- using namespace cv;
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
-
- //载入图像
- Mat src = imread("c:/opencv/star.jpg");
-
- //显示
- imshow("src",src);
-
- //自定义核
- Mat element = getStructuringElement(MORPH_ELLIPSE,Size(5,5));
-
- //输出对象
- Mat dst;
-
- //腐蚀
- erode(src,dst,element);
-
- //显示
- imshow("dst",dst);
-
- }
-
- Widget::~Widget()
- {
- delete ui;
- }
如图所示,星星 尖锐 了许多。