opencv:形态学操作-腐蚀与膨胀



#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    Mat src = imread("f:/images/shuang001.jpg");

    Mat gray, binary;
    cvtColor(src, gray, COLOR_BGR2GRAY);
    threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
    imshow("src", src);
    imshow("binary", binary);
    Mat dst1, dst2;
    Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));
    // 腐蚀
    //erode(binary, binary, kernel);
    // 可以传入彩色图像
    erode(src, dst1, kernel);
    // 膨胀
    dilate(src, dst2, kernel);

    imshow("erode", dst1);
    imshow("dilate", dst2);

    waitKey(0);
    destroyAllWindows();

    return 0;
}

原文地址:https://www.cnblogs.com/wbyixx/p/12324272.html

时间: 2024-10-15 02:09:38

opencv:形态学操作-腐蚀与膨胀的相关文章

图像形态学操作—腐蚀膨胀深入

这里我们主要想讲解冈萨雷斯的数字图像处理这本书上膨胀腐蚀的定义及用opencv实现的结果,然后对比它们之间的差异. 一:opencv实现 在这之前可以看我的另外一篇blog:http://blog.csdn.net/lu597203933/article/details/17184439 膨胀: 案例代码: int main() { int a[8][8] = { {0,0,0,0,0,0,0,0}, {0,0,5,1,0,0,1,1}, {0,1,0,1,0,1,0,0}, {0,1,1,2,

OpenCV2:大学篇 形态学技术-腐蚀与膨胀操作

一.简介 图像处理中的形态学操作用于图像预处理操作(去噪 形状简化) 图像增强(骨架提取 细化  凸包  物体标记)  物体背景分割及物体形态量化等场景 二.腐蚀与膨胀操作 OpenCV 提供了 erode() 进行腐蚀操作 提供了 dilate() 进行膨胀操作 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.h

OpenCV学习 7:图像形态学:腐蚀、膨胀

原创文章,欢迎转载,转载请注明出处 首先什么是图像形态学?额,这个抄下百度到的答案.基本思想:    用具有一定形态的结构元素去度量和提取图像中的对应形状已达到对图像分析和识别的目的,形态学图像处理表现为一种领域运算方式(这个和前面的模糊运算是一样的运算方式),效果取决于结构元素(就是前面smooth里面的核)的大小,内容以及逻辑运算的性质.看了这些定义是不是很晕,对很晕...我比较关心的是它的用途和怎么计算.    用途是:简化图像数据,保持他们基本的形状特性,并出去不相干的结构.    基本

OPENCV形态学操作1

形态学操作是指基于形状的一系列图像处理操作,包括膨胀,腐蚀,二值化,开运算,闭运算,顶帽算法,黑帽算法,形态学梯度等,最基本的形态学操作就是膨胀和腐蚀. 一.膨胀 首先需要明确一个概念,膨胀和腐蚀都是针对于图像中较亮的区域而言的,膨胀就是亮的区域变多了,而腐蚀就是暗的区域变多了. 膨胀的功能主要有消除噪声,分割出独立的图像元素,在图像操作的时候,有时候需要对图像中的某些形状进行检测,而这些形状相互连接在一起,不好分开检测,膨胀就能切开这些形状(很小的连接位置),或者图像中有很小块的黑斑,或许是相

opencv中的腐蚀与膨胀(转)

图像腐蚀和图像膨胀是图像中两种最基本形态学操作. void erode( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue() ); void dilate( const Ma

OpenCV学习笔记——腐蚀与膨胀

1.膨胀 此操作将图像 与任意形状的内核 (),通常为正方形或圆形,进行卷积. 内核 有一个可定义的 锚点, 通常定义为内核中心点. 进行膨胀操作时,将内核 划过图像,将内核 覆盖区域的最大相素值提取,并代替锚点位置的相素.显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation ). erode src: 原图像 erosion_dst: 输出图像 element: 腐蚀操作的内核. 指定形状:getStructuringElement 矩形: MORPH_R

OpenCV:图像的腐蚀和膨胀

图像的腐蚀和膨胀实际上是利用卷积进行计算,首先导包: import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image=cv2.imread(image) image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB) return image

图像形态学操作—腐蚀扩展深度

在这里,我们想向大家解释这本书的数字图像处理对冈萨雷斯的扩大和使用腐蚀-definedopencv取得的成果,然后控制它们之间的差异. 一:opencv达到 在这之前能够看我的另外一篇blog:http://blog.csdn.net/lu597203933/article/details/17184439 膨胀: 案例代码: int main() { int a[8][8] = { {0,0,0,0,0,0,0,0}, {0,0,5,1,0,0,1,1}, {0,1,0,1,0,1,0,0},

opencv形态学操作之开运算、闭运算

原图: 开运算: 先腐蚀后膨胀叫开运算(因为先腐蚀会分开物体,这样容易记住),其作用是:分离物体,消除小区域.这类形态学操作用cv2.morphologyEx()函数实现: 下面两份代码分别对应通过先腐蚀后膨胀的效果 和 直接通过开运算的效果 import cv2 import numpy as np img = cv2.imread("zw.jpg", 0) kernel = np.ones((3, 3), np.uint8) kerne2 = np.ones((5, 5), np.