通过一个特定的结构元素 膨胀 一个图像。
- void cv::dilate
- (
- 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;
-
- //膨胀
- dilate(src,dst,element);
-
- //显示
- imshow("dst",dst);
-
- }
-
- Widget::~Widget()
- {
- delete ui;
- }

如图所示,星星 圆润 了许多。