精华内容
下载资源
问答
  • 程序流程 ...本次实验重点知识:图像形态学的应用 环境 笔记本电脑折叠90度,利用其摄像头完成实验平台搭建,在扩展屏上进行代码编辑 相关代码: * Image Acquisition 01: Code generated by Image Acq...

    程序流程

    1.图像采集
    2.图像灰度化
    3.图像二值化
    4.填充所有孔洞
    5.图像形态学开运算
    6.计算所有连通域
    7.特征提取(面积+圆度)
    8.显示定位、面积等

    本次实验重点知识:图像形态学的应用

    环境

    笔记本电脑折叠90度,利用其摄像头完成实验平台搭建,在扩展屏上进行代码编辑
    在这里插入图片描述

    相关代码:

    * Image Acquisition 01: Code generated by Image Acquisition 01
    open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] ', 0, -1, AcqHandle)
    grab_image_start (AcqHandle, -1)
    dev_update_window ('off')
    dev_close_window ()
    dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
    while (true)
        dev_update_window ('off')
        grab_image_async (Image, AcqHandle, -1)
    *     dev_display (Image)
        rgb1_to_gray (Image, GrayImage)
    *     dev_display (GrayImage)
        threshold (GrayImage, Regions, 180, 255)
        fill_up (Regions, RegionFillUp)
    *     dev_display (Regions)
        opening_circle (RegionFillUp, RegionOpening, 6) //开运算
    *     dev_display (RegionOpening)
        connection (RegionOpening, ConnectedRegions)
    *     dev_display (ConnectedRegions)
        
        select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [15111.3,0.7419], [17560.7,2])
    *     dev_display (SelectedRegions)
        area_center (SelectedRegions, Area, Row, Column)
        disp_message (WindowHandle, '面积:'+Area+' 中心位置:('+Row+','+Column+')', 'window', 0, 0, 'black', 'true')
        dev_display (Image)
        dev_display (SelectedRegions)
        
    endwhile
    close_framegrabber (AcqHandle)
    
    

    实验效果
    在这里插入图片描述
    在这里插入图片描述
    原图像:
    在这里插入图片描述

    展开全文
  • 实验五 二值形态学操作

    千次阅读 2011-01-06 11:37:00
    实验五 二值形态学操作 一、实验目的 1; 了解二值形态学的基本运算 2; 掌握基本形态学运算的Matlab实现 3; 了解形态操作的应用 二、原理  收缩和膨胀是数学形态学最基本的变换...

    实验五 二值形态学操作

    一、实验目的
    1; 了解二值形态学的基本运算
    2; 掌握基本形态学运算的Matlab实现
    3; 了解形态操作的应用
    二、原理
       收缩和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运

    算。
       膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。若输出图像为g(i,j),则它们的定

    义式为二值图像目标X是E的子集。用B代表结构元素,Bs代表结构元素B关于原点(0 , 0)的对称集合:
    即Bs是B旋转180°获得的。给出了三种简单的结构元素。膨胀和腐蚀变换的定义式为:
    膨胀
    腐蚀
    Matlab中用imdilate函数实现膨胀。用法为:
    Imdilate(X,SE).其中X是待处理的图像,SE是结构元素对象。
    例如:
    bw = imread('text.tif');
    se = strel('line',11,90);
    bw2 = imdilate(bw,se);
    imshow(bw), title('Original')
    figure, imshow(bw2), title('Dilated')
    Matlab用imerode函数实现图像腐蚀。用法为:
    Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象。
    例如:
    I = imread('cameraman.tif');
    se = strel('ball',5,5);
    I2 = imerode(I,se);
    imshow(I), title('Original')
    figure, imshow(I2), title('Eroded')
    三、练习
    1 读取一幅图像,进行骨架化操作并得到其边界
    2 读取一幅图像,转化为二进制图像,并计算其面积
    3读取一幅图像,比较不同距离变换的图像效果

    展开全文
  • 形态学处理

    2018-01-27 15:36:09
    2.掌握基本形态学图像的腐蚀、膨胀和开闭运算. 连接分量的标注的实现 3.了解形态操作的应用 二.实验基本原理 1.形态学 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出...
        

    形态学处理

    一. 实验目的

    1.了解二值形态学的基本运算

    2.掌握基本形态学图像的腐蚀、膨胀和开闭运算. 连接分量的标注的实现

    3.了解形态操作的应用

    .实验基本原理

    1.形态学

    腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。

    2.图像分割:

    图像分割是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。边缘检测实际上就是检测图像特征发生变化的位置。图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置

    由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。边缘检测的方法大多数是基于方向导数掩模求卷积的方法。

    导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。

    传统的边缘检测算法通过梯度算子来实现的,在求边缘的梯度时,需要对每个象素位置计算。在实际中常用小区域模板卷积来近似快速计算,简单有效,即梯度算子一般采用滤波算子的形式来完成,因此应用很广泛。模板是N*N的权值方阵,经典的梯度算子模板有:Sobel模板、Prewitt模板、Roberts模板、Laplacian模板等。拉普拉斯高斯(LoG)算法是一种二阶边缘检测方法。它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。其原理为,灰度级变形成的边缘经过微风算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对应二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。

    三.实验内容

    1. 图像的腐蚀、膨胀和开闭运算

    2. 连接分量的标注

    3. /线的检测

    4. 使用edge进行边缘检测(roberts/prewitt/sobel/LoG/Canny

    四、实验源代码及结果

    1.图像的腐蚀、膨胀:

    clear;

    close all;

    SE=strel('rectangle',[5 5]);  %注意:结构元素必须具有适当的大小

    BW1=imread('C:\Users\cs\Desktop\图片\结构.TIF')    

    BW2=imerode(BW1,SE);    %腐蚀

    BW3=imdilate(BW1,SE);    %膨胀

    subplot(2,2,1),

    imshow(BW1),title('原图');

    subplot(2,2,2),

    imshow(BW2),title('腐蚀图');

    subplot(2,2,3),

    imshow(BW3),title('膨胀图');

    形态学处理
    SE 不同,得到的效果也不同。

     

     

    2.开闭运算:

    I=imread('C:\Users\cs\Desktop\图片\波比.jpg');          %载入图像

    subplot(2,2,1),imshow(I);

    title('原始图像');

    axis([50,250,50,200]);

    axis on;                  %显示坐标系

    I1=im2bw(I);

    subplot(2,2,2),imshow(I1);

    title('灰度图像');

    axis([50,250,50,200]);

    axis on;                  %显示坐标系 

    %请改变结构元素大小,观察效果不同。如将半径改为5

    se=strel('disk',2);     %采用半径为1的圆作为结构元素

    I2=imopen(I1,se);         %开操作

    I3=imclose(I1,se);        %闭操作

    subplot(2,2,3),imshow(I2);

    title('开运算后图像');

    axis([50,250,50,200]);

    axis on;                  %显示坐标系

    subplot(2,2,4),imshow(I3);

    title('闭运算后图像');

    axis([50,250,50,200]);

    axis on;                  %显示坐标系

    形态学处理
    结构参数设置不同,结果不一样。

     

     

    3.点检测:

    clc

    clear

    f = imread(' C:\Users\cs\Desktop\图片\细胞.tif');

    imshow(f)

    title('原始图像')

    w = [-1 -1 -1;

         -1  8 -1;

         -1 -1 -1];

    g = abs(imfilter(double(f),w));

    % **** 求矩阵最大值和对应坐标位置 ********

    % [c1,i] = max(g);

    % [c2,j] = max(c1);

    % max_ans = g(i(j),j)      % 最大值

    % max_location = [i(j),j]  % 最大值坐标位置

    % **************************************

    T = max(g(:));

    g1 = g>=T/7;

    % g2 = g>=T;

    figure

    imshow(g1)

    title('采用界限值[g>=T/10]后的图像')

    % figure

    % imshow(g2)

    % title('采用界限值[g>=T]后的图像')

     形态学处理


    4.线检测:

    clc

    clear

    f = imread(' C:\Users\cs\Desktop\图片\X.TIF');

    subplot(3,3,1),imshow(f)

    title('原始连线掩模图像')

    w = [2 -1 -1;

         -1 2 -1;

         -1 -1 2];

    g = imfilter(double(f),w);

    subplot(3,3,3),imshow(g,[])

    title('-45度检测器处理后的图像')

    gtop = g(1:120,1:120);

    % gtop = pixeldup(gtop,4);

    subplot(3,3,4),imshow(gtop,[])% imshow(gtop,'InitialMagnification','fit')

    title('左上角的放大图')

    %

    gbot = g(end-119:end,end-119:end);

    % gbot = pixeldup(gbot,4);

    subplot(3,3,6),imshow(gbot,[])

    title('右下角的放大图')

     形态学处理


     5.边缘检测:

    分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的不同之处;

    I=imread(‘C:\Users\cs\Desktop\图片\.tif');

    imshow(I)

    BW1=edge(I,'roberts');

    figure ,imshow(BW1),title('Roberts算子')

    BW2=edge(I,'sobel');

    figure,imshow(BW2),title('Sobel算子 ')

    BW3=edge(I,'log');

    figure,imshow(BW3),title('用拉普拉斯高斯算子')

    得到:

    形态学处理

    比较提取边缘的效果可以看出,sober算子是一种微分算子,对边缘的定位较精确,但是会漏去一些边缘细节。而Laplacian-Gaussian算子是一种二阶边缘检测方法,它通过寻找图像灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘的细节比较丰富。通过比较可以看出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。

     

    五.实验总结(心得体会)

    通过这次实验我明白了利用形态学的知识对图片进行处理,通过物体和结构元素的相互作用,得到更本质的形态,知道了形态运算是并行运算。

     

    展开全文
  • 掌握数学形态学的基本理论。 掌握数学形态学的四种基本运算,并会运用其进行简单的图像处理。 二、实验内容 1. 编写程序实现二值图像的腐蚀和膨胀。 2. 编写程序实现二值图像的开运算和闭运算。 3. 编写程序对...

    一、实验目的

    掌握数学形态学的基本理论。

    掌握数学形态学的四种基本运算,并会运用其进行简单的图像处理。

    二、实验内容

    1. 编写程序实现二值图像的腐蚀和膨胀。

    2. 编写程序实现二值图像的开运算和闭运算。

    3. 编写程序对以下图像进行形态学运算,填充内部的孔洞和外部的白色噪音块。 

    4. 编写程序实现灰度图像的腐蚀、膨胀、开运算和闭运算

    三、实验过程

    1. 编写程序实现二值图像的腐蚀和膨胀。

    实验代码如下:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    int main()
    {
        //将彩色图片化为二值图片
        Mat srcImg = imread("F:\\work_three_grade\\DigitalImage\\fish.jpg");
        Mat grayImg(srcImg.size(), CV_8U);
        cvtColor(srcImg, grayImg, CV_BGR2GRAY);
        Mat binaryImg(grayImg.size(),grayImg.type());
        threshold(grayImg, binaryImg, 100, 255, THRESH_BINARY);
    
        //设置结构元素类型,大小及锚点位置。
        int elemType = MORPH_RECT;
        Mat elemStruct = getStructuringElement(elemType, Size(3, 3), Point(1, 1));
    
        //实现腐蚀
        Mat dstImg;
        erode(binaryImg, dstImg, elemStruct);
        //实现膨胀
        Mat dilImg;
        dilate(binaryImg, dilImg, elemStruct);
    
        //原图像
        namedWindow("startwindow", CV_WINDOW_NORMAL);
        imshow("startwindow", srcImg);
        //二值图片
        namedWindow("binarywindow", CV_WINDOW_NORMAL);
        imshow("binarywindow", binaryImg);
        //腐蚀
        namedWindow("dstwindow", CV_WINDOW_NORMAL);
        imshow("dstwindow", dstImg);
        //膨胀
        namedWindow("dilwindow", CV_WINDOW_NORMAL);
        imshow("dilwindow", dilImg); 
         
        waitKey();
        return 0; 
    }

    实验结果截图:第一幅图片是原图,第二幅图片是二值图,第三幅图片是腐蚀后的图片,第四幅图片是膨胀后的图片

      2.编写程序实现二值图像的开运算和闭运算。

    开运算代码如下:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    int main()
    {
        //将彩色图片化为二值图片
        Mat srcImg = imread("F:\\work_three_grade\\DigitalImage\\c.jpg");
        Mat grayImg(srcImg.size(), CV_8U);
        cvtColor(srcImg, grayImg, CV_BGR2GRAY);
        Mat binaryImg(grayImg.size(),grayImg.type());
        threshold(grayImg, binaryImg, 100, 255, THRESH_BINARY);
    
        //设置结构元素类型,大小及锚点位置。
        int elemType = MORPH_ELLIPSE;
        Mat elemStruct = getStructuringElement(elemType, Size(17, 17), Point(8, 8));
    
        //实现开运算
        Mat dstImg;
        morphologyEx(binaryImg, dstImg, MORPH_OPEN, elemStruct);
    
    
        //原图像
        namedWindow("startwindow", CV_WINDOW_NORMAL);
        imshow("startwindow", srcImg);
        //二值图片
        namedWindow("binarywindow", CV_WINDOW_NORMAL);
        imshow("binarywindow", binaryImg);
        //开运算结果
        namedWindow("dstwindow", CV_WINDOW_NORMAL);
        imshow("dstwindow", dstImg);
         
        waitKey();
        return 0; 
    }

    闭运算代码如下:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    int main()
    {
        //将彩色图片化为二值图片
        Mat srcImg = imread("F:\\work_three_grade\\DigitalImage\\c.jpg");
        Mat grayImg(srcImg.size(), CV_8U);
        cvtColor(srcImg, grayImg, CV_BGR2GRAY);
        Mat binaryImg(grayImg.size(),grayImg.type());
        threshold(grayImg, binaryImg, 100, 255, THRESH_BINARY);
    
        //设置结构元素类型,大小及锚点位置。
        int elemType = MORPH_ELLIPSE;
        Mat elemStruct = getStructuringElement(elemType, Size(17, 17), Point(8, 8));
    
        //实现闭运算
        Mat dstImg;
        morphologyEx(binaryImg, dstImg, MORPH_CLOSE, elemStruct);
    
    
        //原图像
        namedWindow("startwindow", CV_WINDOW_NORMAL);
        imshow("startwindow", srcImg);
        //二值图片
        namedWindow("binarywindow", CV_WINDOW_NORMAL);
        imshow("binarywindow", binaryImg);
        //闭运算结果
        namedWindow("dstwindow", CV_WINDOW_NORMAL);
        imshow("dstwindow", dstImg);
         
        waitKey();
        return 0; 
    }

    开运算结果如下:

    闭运算结果如下:

      3.编写程序对以下图像进行形态学运算,填充内部的孔洞和外部的白色噪音块。

    代码实现:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    int main()
    {
        //将彩色图片化为二值图片
        Mat srcImg = imread("F:\\work_three_grade\\DigitalImage\\pic.png");
        /*Mat grayImg(srcImg.size(), CV_8U);
        cvtColor(srcImg, grayImg, CV_BGR2GRAY);
        Mat binaryImg(grayImg.size(), grayImg.type());
        threshold(grayImg, binaryImg, 100, 255, THRESH_BINARY);
        */
        //设置结构元素类型,大小及锚点位置。
        int elemType = MORPH_ELLIPSE;
        Mat elemStruct = getStructuringElement(elemType, Size(19, 19), Point(9, 9));
    
        //实现开运算
        Mat openImg;
        morphologyEx(srcImg, openImg, MORPH_OPEN, elemStruct);
    
        //再实现闭运算
        Mat closeImg;
        morphologyEx(openImg, closeImg, MORPH_CLOSE, elemStruct);
    
        //原图像
        namedWindow("startwindow", CV_WINDOW_NORMAL);
        imshow("startwindow", srcImg);
        //经过先开运算后闭运算的图像
        namedWindow("endwindow", CV_WINDOW_NORMAL);
        imshow("endwindow", closeImg);
    
    
        waitKey();
        return 0;
    }

    实验结果截图:

     

    上面实验是先对原图像进行开运算将外面的白色斑点去掉,此时图像里面的黑色孔洞也会相应增大,然后再进行闭运算,将孔洞填充掉,最后形成第二幅图。

    4. 编写程序实现灰度图像的腐蚀、膨胀、开运算和闭运算

    (1)腐蚀和膨胀:

    代码如下:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    int main()
    {
        //将彩色图片化为灰度图片
        Mat srcImg = imread("F:\\work_three_grade\\DigitalImage\\fish.jpg");
        Mat grayImg(srcImg.size(), CV_8U);
        cvtColor(srcImg, grayImg, CV_BGR2GRAY);
        //Mat binaryImg(grayImg.size(), grayImg.type());
        //threshold(grayImg, binaryImg, 100, 255, THRESH_BINARY);
    
        //设置结构元素类型,大小及锚点位置。
        int elemType = MORPH_RECT;
        Mat elemStruct = getStructuringElement(elemType, Size(3, 3), Point(1, 1));
    
        //实现腐蚀
        Mat dstImg;
        erode(grayImg, dstImg, elemStruct);
        //实现膨胀
        Mat dilImg;
        dilate(grayImg, dilImg, elemStruct);
    
        //原图像
        namedWindow("startwindow", CV_WINDOW_NORMAL);
        imshow("startwindow", srcImg);
        //灰度图片
        namedWindow("graywindow", CV_WINDOW_NORMAL);
        imshow("graywindow", grayImg);
        //腐蚀
        namedWindow("dstwindow", CV_WINDOW_NORMAL);
        imshow("dstwindow", dstImg);
        //膨胀
        namedWindow("dilwindow", CV_WINDOW_NORMAL);
        imshow("dilwindow", dilImg);
    
        waitKey();
        return 0;
    }

    腐蚀(灰度图像,腐蚀后图像):

    膨胀(灰度图像,膨胀后图像):

    2)开运算和闭运算
    代码如下:
    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace std;
    using namespace cv;
    int main()
    {
        //将彩色图片化为灰度图片
        Mat srcImg = imread("F:\\work_three_grade\\DigitalImage\\fish.jpg");
        Mat grayImg(srcImg.size(), CV_8U);
        cvtColor(srcImg, grayImg, CV_BGR2GRAY); 
    
        //设置结构元素类型,大小及锚点位置。
        int elemType = MORPH_ELLIPSE;
        Mat elemStruct = getStructuringElement(elemType, Size(17, 17), Point(8, 8));
    
        //实现开运算
        Mat openImg;
        morphologyEx(grayImg, openImg, MORPH_OPEN, elemStruct);
        //实现闭运算
        Mat closeImg;
        morphologyEx(grayImg, closeImg, MORPH_CLOSE, elemStruct);  
         
        //灰度图片
        namedWindow("graywindow", CV_WINDOW_NORMAL);
        imshow("graywindow", grayImg);
        //开运算结果
        namedWindow("openwindow", CV_WINDOW_NORMAL);
        imshow("openwindow", openImg);
        //闭运算结果
        namedWindow("closewindow", CV_WINDOW_NORMAL);
        imshow("closewindow", closeImg);
    
        waitKey();
        return 0;
    }

    实验结果截图:

    开运算(灰度图像,开运算后的图像):

    闭运算(灰度图像,闭运算后的图像):

      终于写完了,其实好多知识有异曲同工之处~~

    转载于:https://www.cnblogs.com/loyolh/p/10096961.html

    展开全文
  • 用opencv实验形态学开运算和闭运算,程序代码为#include"cv.h"#include"highgui.h"intmain(intargc,char*argv[]){//调入照片IplImage*img=cvLoadImage("2.jpg");if(!img)//判断图片调入是否成功return-1;//调入图片...
  • 1、实验目的:图像的形态学滤波,图像的中值、均值滤波。 2实验要求:1)图像的读取与显示; 2)读取显示图像中指定位置的像素值; 3)计算并显示图像的直方图; 4)直方图均衡计算。 3、实验环境:操作系统...
  • 一、实验名称数学形态学应用二、实验目的1.熟悉MATLAB软件的使用。2.掌握数字图像处理中的腐蚀、膨胀定义及操作。3.掌握图像的开运算、闭运算三、实验内容1.在长方形目标物A中,内部有噪声导致的空洞,周围有噪声块。...
  • tensorflow和cv2形态学操作上的区别 tf.nn.erosion2d、tf.nn.dilation2d和cv2.erode,cv2.dilate的区别: 1.结果的区别: 实验: 原图片:(来自西工大NWPU-RESISC45数据集) 用tf.nn.erosion2d的代码 import ...
  • 形态学重建之孔洞填充

    千次阅读 2020-11-28 15:52:30
    请往下看)2、什么是孔洞填充(如果已经了解,请往下看)3、什么是形态学重建(如果已经了解,请往下看)4、什么是测地膨胀(如果已经了解,请往下看)5、什么是形态学重建之孔洞填充(终于到正题了)6、实验 ...
  • 形态学重建有很宽的实际应用领域,下面有三个关于文本图像的二值图像的形态学处理实验,分别是提取较长的字符,填充孔洞和边缘字符消除。 提取长字符 这里先给出主函数,具体功能函数后面给出: %% 运行 main_zifu.m...
  • 2.掌握基本形态学图像的腐蚀、膨胀和开闭运算. 连接分量的标注的实现 3.了解形态操作的应用 二.实验基本原理 1.形态学 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出...
  • 形态学处理: 开运算:先腐蚀后膨胀的过程。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。开运算通常是在需要去除小颗粒噪声,以及断开目标物之间粘连时使用。.
  • 微生物学实验报告.doc

    2021-01-14 23:15:15
    微生物学实验报告 实验名称:用高倍显微镜观察叶绿体和细胞质流动 一、实验目的 1.初步掌握高倍显微镜的使用方法。 2.观察高等植物的叶绿体在细胞质基质中的形态和分布 二、实验原理 高等植物的叶绿体呈椭球状,...
  • 图像膨胀和腐蚀 图解 原理及python实现 更多内容:图像膨胀和腐蚀原理及python实现 opencv中膨胀和腐蚀函数 dilation = cv.dilate(img, kernel) # 膨胀...import cv2 as cv import numpy as np img = cv.imread...
  • 数字图像处理Matlab-形态学图像处理(附代码)

    千次阅读 多人点赞 2020-03-26 18:59:10
    3.Experiment Principle:4.Experiment Steps Result and Conlusion:1、二值图像的形态学变换2、对输入图像进行形态学操作,即腐蚀、膨胀、开运算和闭运算,改变结构元素形状、大小,重做上述实验,比较实验结果,...
  • 数学形态学应用 二、实验目的 1.熟悉MATLAB软件的使用。 2.掌握数字图像处理中的腐蚀、膨胀定义及操作。 3.掌握图像的开运算、闭运算 三、实验内容 1.在长方形目标物A中,内部有噪声导致的空洞,周围有噪声块。编写...
  • 我一般是这样理解的:因为平时在处理二值化图像的时候都是以黑色作为背景,白色显示目标...2.膨胀 2.1相关API 2.2实验代码 2.3运行结果 3.开操作 3.1相关API 3.2实验代码 3.3运行结果 4.闭操作 API和开操作相同;.
  • 针对图像篡改中常用的模糊操作,研究使用平滑滤波保存边和数学形态法的新型模糊检测方案,充分利用2种方法的锐化功能和去噪功能,无需水印技术等任何嵌入信息就能指出可能的篡改并定位篡改位置,该方法不仅可以判断...
  • 变形形态的无监督模型 ... “探索面向儿童的语音的无监督形态学中的分布式表示的效用”是对word2vec在儿童语言习得过程中是否以及如何有效地模拟变形形态学的论述。 它还有Gaja的评论,这可能是未来有趣的研究方向。
  • 文章目录DIP 数字图像处理3:形态学综合题(粒子测度实现)1. 题目:计算粒子大小分布,并画出分布图2. 实验环境:3. 实验步骤:4. 实验中使用到的图像处理操作:5. 实验结果:6. 所有代码如下: DIP 数字图像处理3...
  • 实验结果表明, 对输入信噪比为2. 36 dB的复杂海波进行背景抑制后, 输出信噪比能达到22. 51 dB。与经典top-hat、改进top-hat算子相比, 该方法在主观视觉和客观评价指标两方面均表现出良好的效果, 能够对红外图像复杂...
  • 一、实验名称数学形态学应用二、实验目的1.熟悉MATLAB软件的使用。2.掌握数字图像处理中的腐蚀、膨胀定义及操作。3.掌握图像的开运算、闭运算三、实验内容1.在长方形目标物A中,内部有噪声导致的空洞,周围有噪声块。...
  • 算法在DRIVE和STARE视网膜图像数据库中进行了测试,实验结果表明,DRIVE数据库中的分割精度为0.938 2,STARE数据库中的分割精度为0.946 0,算法的执行时间为1.6 s。算法能够精确地分割出视网膜血管,与传统的无监督...
  • 上一节我们学习了形态学的基本...其数学表达式如下:开运算表达式实例:实验结果:开操作原图(左)与效果图(右)2形态学操作 --- 闭运算先膨胀后腐蚀的过程称为闭运算(Closing Operation)。其数学表达式如下:闭运...
  • 前言形态学建筑物指数MBI通过建立建筑物的隐式特征和形态学算子之间的关系进行建筑物的提取[1]。原理上图源自[2]。实验数据简单找了一张小图片:test.jpg代码为了支持遥感图像,我的读写数据函数都是利用GDAL写的。...
  • 昆虫实验报告.doc

    2021-01-19 11:04:53
    昆虫实验报告 篇一:昆虫实习报告 一、实习目的 通过到野外采集昆虫并制成标本,掌握野外采集昆虫的方法、了解不同昆虫的生存环境。掌握昆虫的形态特征,学习昆虫的识别方法和种类、了解昆虫与植物病虫害的...
  • 实验要求   (1.a) 编写一个用3 x 3 ...  (1.c) 利用上述函数实现公式(9.5-1)所示的形态学边界抽取算法。   (1.d) 对图9.20(left)进行特征边界抽取。   (2.a) 编写一个用3 x 3 结构元进行灰度图像膨胀和腐
  • 一. 官方文档: dilate(膨胀): 函数原型 ↑ 参数说明 ↑ ... cv.erode(腐蚀)的使用和其类似。...二. 实验:膨胀和腐蚀 ...import cv2 as cv import numpy as np image = cv.imread("../paoji...

空空如也

空空如也

1 2 3 4 5 6
收藏数 110
精华内容 44
关键字:

形态学实验2