opencv

您所在的位置:网站首页 python二值图像提取圆形 opencv

opencv

2024-07-03 21:05:28| 来源: 网络整理| 查看: 265

这里我们先说图像腐蚀 图像腐蚀的原理是缩小腐蚀中心的像素值,从而达到降低图片高亮度,凸显灰暗部分的作用。 它的实现原理为我们用结构元素1去覆盖图像2中的矩阵,结构元素可以是十字形,矩形,圆形等。覆盖2后 结构元素中心像素值替换为该覆盖区域图像2中最小的值。 图像腐蚀

Mat src1 = imread("C://Users//Administrator//Desktop//1.jpg"); namedWindow("腐蚀前", 0);//1是自动适应窗口大小,0是可调整 imshow("腐蚀前", src1); Mat src2 =getStructuringElement(MORPH_CROSS, Size(9,9));//参数为(结构元素形状,结构元素矩阵大小),这里是十字形 cout int i = rand() % src2.rows; int j = rand() % src2.cols; if (src2.channels() == 1)//如果是单通道 { src2.at(i, j) = 255; //加白盐 } else//如果是三通道 { src2.at(i, j)[0] = 255; src2.at(i, j)[1] = 255; src2.at(i, j)[2] = 255; } } for (int k = 0; k src2.at(i, j) = 0; //加黑盐 } else { src2.at(i, j)[0] = 0; src2.at(i, j)[1] = 0; src2.at(i, j)[2] = 0; } } return src2; } int main() { Mat src1 = imread("C://Users//Administrator//Desktop//1.jpg"); namedWindow("加盐前", 0); imshow("加盐前", src1); Mat src2 = salt(src1, 3000); namedWindow("加盐后", 0); imshow("加盐后", src2); //存储图像 waitKey(); return 0; }

在这里插入图片描述 以及高斯噪点,高斯噪点的随机数服从正态分布,分布比较均匀

double gaosirand(double avage, double Variance)//生成高斯随机数 参数是(均值,方差) { const double min = numeric_limits::min();//double 最小值 static double s1;//高斯随机数 double s3, s4;//两个普通随机数 do { s3 = rand() * (1.0 / RAND_MAX);//rand_max是能产生的最大随机数 这里是求0-1的随机数 s4 = rand() * (1.0 / RAND_MAX); } while (s3 cols *= rows;//变成一列 rows = 1; } for (int i = 0; i int val = src2.ptr(i)[j] +gaosirand(2, 0.8) * 32;//高斯随机数访问数组元素,ptr是遍历元素 比at要快 if (val 255) val = 255; src2.ptr(i)[j] = (uchar)val;//添加高斯噪点 } } return src2; } int main() { Mat src1 = imread("C://Users//Administrator//Desktop//1.jpg"); imshow("原图像", src1); Mat src2 = addgaosirand(src1); imshow("加入高斯噪声后的图像", src2); waitKey(); return 0; }

在这里插入图片描述 下面我们进行滤波去噪 滤波又叫平滑操作,也同样有多种方法,基本思想都是均值化像素,相当于把噪点像素平摊给周围像素,达到弱化噪点的作用,缺点是分摊噪点后图会“糊了”。这里我们采用均值滤波法。其算法原理是在这里插入图片描述 它的含义是取某一像素周围(k.width行,kheight列)个像素相加的平均数取代该像素

int main() { Mat src1 = imread("C://Users//Administrator//Desktop//1.jpg"); namedWindow("原图",0); imshow("原图", src1); Mat src4; blur(src1, src4, Size(9, 9)); namedWindow("原图滤波", 0); imshow("原图滤波", src4); Mat src2 =imread("C://Users//Administrator//Desktop//2.jpg"); namedWindow("椒盐噪点", 0); imshow("椒盐噪点", src2); Mat src5; blur(src2, src5, Size(9, 9)); namedWindow("椒盐滤波", 0); imshow("椒盐滤波", src5); Mat src3= imread("C://Users//Administrator//Desktop//3.jpg"); namedWindow("高斯噪点", 0); imshow("高斯噪点", src3); Mat src6; blur(src3, src6, Size(9, 9)); namedWindow("高斯噪点滤波", 0); imshow("高斯噪点滤波", src6); waitKey(); return 0; }

掩膜mask可理解为抠图,也是与原图进行逻辑“&”运算 Canny算法的原理是设定上下阈值,下界且上界的视为边界

Mat src1 = imread("C://Users//Administrator//Desktop//1.jpg"); namedWindow("原图",0); imshow("原图", src1); Mat src2, src3, src4, src5;//src2是src1的灰度图,src3是src3的二值化图,src4是src3第一次提取轮廓,src5是src3第二次地区轮廓并与src1掩膜操作 src2.create(src1.size(), src1.type()); cvtColor(src1, src2, CV_BGR2GRAY); blur(src2, src4, Size(3, 3)); Canny(src4, src4, 3, 9, 3);//边缘提取算法,上下阈值最好相差3倍,此时src4粗存的只有0和255,0是黑,255是白 其中参数为(输入图,输出边缘结果图,阈值上下限,sobe算子,默认为3*3的卷积矩阵) namedWindow("轮廓图", 0); imshow("轮廓图", src4); src5 = Scalar::all(0);//全黑 src1.copyTo(src5, src4);//src1与src4掩膜给src5 其实就是src4&src1运算,0&src4.element=0,255&src4.element=src4.elementx namedWindow("轮廓图2", 0); imshow("轮廓图2", src5);//这次运算轮廓有颜色了 waitKey(); return 0;

在这里插入图片描述 梯度:是一个向量,物理意义是某个平面,总有一个方向(x,y,z)使得平面变化最大(也可以理解为平面最陡峭的方向),这个方向就是梯度。我们可以得知平面有无数个点,每一个点都可以朝着方向(cosa,cosb,cosy)拓展,方向导数可以表示为 在这里插入图片描述,而最大的方向导数就是梯度的方向,最大方向导数的值就是梯度的长度,该导数的方向就是梯度的方向。扩展到图中的每一个像素,梯度是图像变化最大的方向,也就是物体轮廓的边界部分。我们建立坐标系(x,y)图像可作为二维函数表示 在x方向上的导数,也就是沿着水平方向的变化 在这里插入图片描述 当h=1,也就是移动一个像素的时候得到最小梯度为f(x+1,y)-f(x,y),恰好是向左移动一个单位 在y方向上的导数,也就是沿垂直方向的变化 在这里插入图片描述当h=1,也就是移动一个像素的时候得到最小梯度为f(x,y+1)-f(x,y)向下移动一个像素 梯度的幅值指的是相邻像素的差异比较,结果为在这里插入图片描述梯度的方向角如下,方向角和幅值也能表示梯度的方向在这里插入图片描述 卷积: 假如我们有一张白纸,沿对角线卷起来在这里插入图片描述 面积也s=s1+s2+s3,用积分表示在这里插入图片描述也就是卷积积分 在这里插入图片描述在图像识别当中 原图矩阵f 在这里插入图片描述 卷积核矩阵(通常由训练得出特征值) 在这里插入图片描述 这里因为(n-i)是递减的,而矩阵的存储顺序是递增的,计算的时候我们要将它反转180° 在这里插入图片描述 我们将g矩阵以g的中心元素(这里是1)依次对准f矩阵的每一个元素。这样f矩阵就会与g矩阵整体相重合,f边界外没有行列,g无法重合,我们就计该处f的值为0,然后我们利用公式在这里插入图片描述(这里的i,j是g中的行列数,要求g反转180°)得到结果矩阵s

在这里插入图片描述

这也是卷积积分的离散表达式在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭