本文将从计算机视觉技术出发,运用Python语言简要分析目标检测在农作物病虫害方面的研究与应用。 ?...(涂成白色) 背景图 ?...对两张处理后的图片做差,返回的值代表其差异之处 # 对图片 foliageNew 和 foliageWhite 做差(对比),返回的结果代表他们的差异之处 pictureDelta = cv2.absdiff...很易得出,非黑色部分为叶片绿色部分,因此一旦确定非黑,像素点个数 +1 for t in distinguishLeaf: k, l = t LeafArea = LeafArea +...= 0: # print(canny0[k, l]) greenLeafArea += 1 至此,成功了一大半,接下来要做的就是输出病虫害叶面占的比重值 scale =
因此,我们专注于轮廓,然后尝试通过颜色变化来识别鲸鱼。 基于彩色滤波器的尾巴提取 检测尾巴轮廓的第一步是在图片里从天空和海水中提取尾巴,这也是尾部提取中最困难的部分。...然后对于给定的图片,我们将15个滤波器应用了15个不同的值作为阈值,对于每个滤波器,我们计算边界框内的像素和外面的像素的数量(过滤后,像素值为0或1,无需再对强度求和),然后,对结果进行归一化,使数字独立于图像的大小...对于每张图片,我们得到的曲线都类似于上面的曲线,这是我们随着阈值的演变而对前面的陈述进行的数学转换。...在这一步,我们可以使用OpenCV的轮廓检测算法,但是通过以下两个步骤会更快一些: 步骤1:使用熵去除尾巴周围的噪声 使用熵变仅保留提取的尾巴轮廓 步骤2:保持每列图片的高光像素 应用熵滤波器后检测到的尾巴轮廓...使用一半的尾巴和一半的 我们尝试使用半尾巴特征,如下所示: 尾巴是对称的,这将简化计算。 尾巴是不对称的,可以通过半尾巴进行比较。
来重温一下下面的光谱表: ? 这里我们在科普一下色温的概念:色温是表示光线中包含颜色成分的一个计量单位。从理论上讲,色温是指绝对黑体从绝对零度(-273℃)开始加温后所呈现的颜色。...上图为在不同颜色的光照下的PCB电路板所呈现的图,根据上面的原理以及上面的图片可以得到,使用白光可以得到相对较好的平均对比度如上图a,而使用某一颜色的光可以显著提高一些特征的对比度,比如红色光照下,左下方的橘黄色芯片的对比度显著增加...由于非偏振光反射后只有部分偏振,所以更好的抑制某些反射的方法是首先使光线称为偏振光,然后再落到物体表面。如下图: ?...照明的选择取决于工件表面的形状、平整度和光洁度。好的照明颜色(红、蓝、绿、白)可以根据检测工作或检测区域的颜色来确定。一般情况下,照明系统应针对确定的成像物镜进行设计。...背光源 用高密度LED阵列面提供高强度背光照明,能突出物体的外形轮廓特征,尤其适合作为显微镜的载物台。红白两用背光源、红蓝多用背光源,能调配出不同颜色,满足不同被测物多色要求。
来重温一下下面的光谱表: ? 这里我们在科普一下色温的概念: 色温是表示光线中包含颜色成分的一个计量单位。从理论上讲,色温是指绝对黑体从绝对零度(一273℃)开始加温后所呈现的颜色。...举个栗子:如果绿色背景上有红色物体,那么我们可以用红色照明,这时红色物体会更加明亮,而绿色背景将变得暗淡。为了更具体的我们看一幅图: ?...上图为在不同颜色的光照下的PCB电路板所呈现的图,根据上面的原理以及上面的图片可以得到,使用白光可以得到相对较好的平均对比度如上图a,而使用某一颜色的光可以显著提高一些特征的对比度,比如红色光照下,左下方的橘黄色芯片的对比度显著增加...由于非偏振光反射后只有部分偏振,所以更好的抑制某些反射的方法是首先使光线称为偏振光,然后再落到物体表面。如下图: ?...明场漫射背光照明 应用:常用于得到不透明物体的轮廓 构造: ?
;说明:①2px /*轮廓宽度*/②black /*轮廓颜色*/③solid /*轮廓样式。...*/ 完整代码复制时,注意带上该段开头部分与结尾部分(如body{和}),如发现不能使用可删除/*文字注释*/看看,建议结合上面的通用代码使用 网页主页定义 body { background-color...scroll; /*评论区背景图*/ color: red; /*评论区字体颜色*/ outline:1px green dashed; /*评论区的轮廓宽度、颜色、样式*/ box-shadow:...*/color: #556688; /*扩展名字体颜色 ★若前面已用了span部分修改将优先显示span部分*/ border: 2px solid red; /*文件列表区域边框属性,分别为宽度,样式...,颜色*/ outline: 1px black solid; /*文件列表区的轮廓宽度、颜色、样式*/ box-shadow: inset -2px 2px 3px black; /*文件列表区阴影,
hidden"(隐藏)三种状态stipple指定一个位图进行填充,默认值为空字符串,表示实心tags为创建的画布对象添加标签width指定边框的宽度对于扇形、矩形、三角形、圆形等,这些封闭式图形,它们由轮廓线和填充颜色两部分组成...,若为空字符串则为透明色offset指定当点画模式时填充位置的偏移,参数值为 "x,y"坐标偏移和位置偏移两种方式,比如 "ne"/"e" 等outline指定轮廓的颜色outlineoffset指定当点画模式绘制轮廓时位图的偏移...")还是弧形("arc")tags为创建的画布对象添加标签width指定边框的宽度示例我们这里绘制各种图形,代码如下:from tkinter import *root = Tk()# 设置主窗口区的背景颜色以区别画布区的颜色...)# 放置画布在主窗口canvas.pack()# 显示窗口root.mainloop()运行程序,结果如下所示:图片注:create_rectangle() 方法的前两个参数决定了矩形的左上角坐标,后两个参数决定了矩形的右下角坐标...展示文本信息Tkinter 还可以展示图片、创建位图以及文本信息等,示例如下所示:from tkinter import *root=Tk()# # 设置主窗口区的背景颜色以区别画布区的颜色root.config
,填充颜色等 { # 第一个对象 "points": [ # 边缘是由点构成,实际上就是物体的轮廓坐标 [ 165.90909090909093,...示意图如下: 轮廓坐标提取程序使用MATLAB编写,为了方便大家阅读,已经精简了程序并加了注释:(不明白轮廓提取得到的数据可以参考补充提供的示例数据,Z.mat数据中只有Z.btnimage...(程序中已加入了详细的中文注释。)...以上面的图片为例转换成json文件后,其部分内容如下:(真正的图片数据很大,为方便演示,只展示部分) 五:坐标数据与图像数据的融合 坐标数据与图像数据的融合,生成可供Labelme解析的json...,所以显示出的图像就是目标颜色的深浅各不相同) 补充: 鉴于很多人询问关于轮廓提取的数据问题,即加载的数据Z.mat是什么??
例子01是参考:pyimagesearch网站上一个识别例子,参考作者的源码,先在本地运行成功之后,然后加上自己的理解,给大多数核心代码加上了详细的中文注释,并在每一个关键阶段都会弹出具体的窗体展示识别流程...,这样便于大家更能详细的看到核心部分的细节,感兴趣的同学,可以自己在再尝试加一些更细部分的debug弹窗。...例子01的在我本地PyCharm运行后一些截图: (1)原图 ? (2)灰度+高斯模糊后的图 ? (3)使用边缘检测后的图 ? (4)透视变换后提取指定答题区域的灰度图 ?...(5)使用ostu的二值化后的图 ? (6)识别答案成功后的图 ? (7)标记出做对和做错的图并计算得分 ?..., cv.CHAIN_APPROX_SIMPLE) # 给轮廓加标记,便于我们在原图里面观察,注意必须是原图才能画出红色,灰度图是没有颜色的 # cv.drawContours(img, cts, -
形状图片和对象掩码示例 这些形状数据集包含500张128×128像素的jpeg图像,其中颜色和大小随机的圆形、正方形和三角形分布在颜色随机的背景上。其二进制掩码注释在每个png格式的形状中进行编码。...下面的“info”,“licenses”,“categories”和“images”列表都可以直接创建,不过创建“annotations”有点麻烦。...但我们可以用pycococreator来解决这部分问题。让我们首先把简单的问题解决掉,我们使用python列表和字典库来描述我们的数据集,然后将它们导出为json格式。 ?...那么前三种完成后,我们可以继续处理图像和注释。我们要做的就是循环遍历每个jpeg图像及其对应的pngs注释,并让pycococreatorpy生成格式正确的条目。...pycococreatortools.create_annotation_info()函数中的tolerance改变了单个对象轮廓记录的精准度。数字越大,注释的质量越低,但文件相对也变小。
,solid表示实心线 */ border: 1px solid; /* 背景颜色 */ background-color: rgb(167, 231, 17); } p { /* 文本显示在纵向中间...,solid表示实心线 */ border: 1px solid; /* 背景颜色 */ background-color: rgb(167, 231, 17); } p { /* 文本显示在纵向中间...,solid表示实心线 */ border: 1px solid; /* 背景颜色 */ background-color: rgb(167, 231, 17); } p { /* 文本显示在纵向中间...,solid表示实心线 */ border: 1px solid; /* 背景颜色 */ background-color: rgb(167, 231, 17); } p { /* 文本显示在纵向中间...,大概为50%减去字体的一半长度 */ margin-top: 48%; }
软件,在首页界面中,新建 Action script 3.0 二.基础大色块构建 1.黄昏背景 如何在 flash 构建一个背景呢?...,形成一个闭合的回路关闭图层后面的小眼睛可以看到他是否在同一图层,用油漆桶工具在中间填充任意颜色,可以检验他是否闭合。...白云 白云的形状多种多样,基本上都是由弧线组成有大小不一和不平滑的直线但在 Flash 中不需要画那么复杂的白云我们需要把白云的形状用基本工具构造出来我们可以尝试用椭圆画出白云的轮廓然后删掉与其它椭圆相交后...,不需要的部分留下白云最外面的轮廓最后用愿意变形工具选白云的下半部分进行删除就可以画出白云,新建图层白云,可以移动的是在线内被选中的颜色,如果线段被删掉或者断开就相当于颜色通过缝隙流到线外被另一根线笼罩形成一个新的回路所以你移动的是新的回路内覆盖的颜色...,线段在没有选中的情况下,不会移动,当你把所有的线段全部删除后,新的回路就是白云的最外层,你移动的就是整个白云的颜色,如果旋转后发现尖端不合适,可以复制对面的尖端,使用任意变形工具,框选尖端,在修改中选择变形
页面的背景颜色使用在body的选择器中: body{background-color:#b0c4de;} CSS中,颜色值通常以以下方式定义: 十六进制 - 如:”#ff0000” RGB - 如...:”rgb(255,0,0)” 颜色名称 - 如:”red” 下面的例子中,h1,p,div元素拥有不同的背景颜色。...下面的例子指定边框的颜色,和th元素的文本和背景颜色: table, td, th { border:1px solid green; } th { background-color:green;...{ display: block; } /* 当下拉内容显示后修改下拉按钮的背景颜色 */ .dropdown:hover .dropbtn { background-color:...有了CSS,可以只显示需要的图像的一部分。在下面的例子CSS指定显示”img_navsprites.gif” 的图像的一部分: <!
把它用到合适的场景没准会有意外收获哦:比如将素材图片换成你的另一半的照片,再或者将地图轮廓素材换成其它喜欢的轮廓。 获取轮廓素材 原理简单,实现起来也不复杂,最紧要的是获取中间透明的地图轮廓图片。...接下来用魔棒工具(或快速选取工具)选中颜色区域进行删除操作,经过一番裁剪修正,将结果存为 png 格式图片。 ?...大致要实现的就是根据地图轮廓图的尺寸,计算素材小图数量,利用 PIL 图片处理模块将小图拼接成与地图轮廓图同等大小的背景图,涉及代码如下: # 读取地图轮廓图 img = Image.open...#将合成的素材图存至 out.jpg new_img.save("out.jpg",quality=100) 地图轮廓贴图 有了背景图以及要覆盖在上面的地图轮廓图,只要将轮廓图贴在背景图上即可收工...#读取合成后的素材图 src1 = Image.open("out.jpg") #读取地图轮廓图 src2 = Image.open("china.png") # 地图轮廓贴d到合成的背景图是那个
,正好符合我们后面的部分外拓的需求。...上面的描边shader,如果注意观察的话,其实并不仅仅是描物体的外轮廓边,在模型内部(模型面前,不是边缘的部分)也被描上了边,不过并不影响表现。...出现这个情况的原因也是没写深度造成描边被覆盖了:对于不透明类型的物体,unity的渲染顺序是从前到后。前面的描边渲染之后,渲染后面的模型,后面的模型在描边部分深度测试仍然通过,就覆盖了。...,所谓模糊,就是让当前像素的颜色值从当前像素以及像素周围的几个采样点按照加权平均重新计算,很明显,上面的这张图进行计算时,人边缘部分的颜色肯定会和周围的黑色平均,导致颜色溢出,进而达到发胖的效果。...关于模糊,可以参考之前的两篇文章: 简单均值模糊和 高斯模糊,这里就不多做解释了,经过模糊后的结果如下: 然后呢,我们就可以让两者相减一下,让胖的扣去瘦的部分,就留下了轮廓部分:
拆分: 可以发现,拆分是将两圆相交的部分沿轮廓拆解出来。 剪除: 剪除是将主对象未相交的部分提取出来。 结合: 结合即逻辑合取。 相交: 相交即逻辑析取。...绘制一个太极图 理解布尔运算的功能后,就能利用其功能绘制一个更复杂点的太极图了。...首先来建立一个球体: 建立一个正圆形,设置顶部棱台和底部棱台宽/高为圆形半径的一半。...简单来说,对于立体图形,不能直接使用轮廓线勾勒轮廓,而用曲面图可以达成这一目的。当图形颜色和背景颜色接近时,使用曲面图可以增强图形的立体效果。...曲线图和轮廓线的对比如图所示: 剖面制作—考验你的空间想象力 PPT无法模拟出一个球被截去一面的效果,因此要制作剖面的制作本质上是图形的遮挡。
插入图表后可以删除一些不必要的元素,以及可以适当更改图表背景颜色,增加一些元素。 ?...增加显示数值 ①点击【插入】→②点击【形状】插入一个适当形状,然后修改形状填充和形状轮廓为无填充和无轮廓→③点击形状,然后在编辑栏输入公式:【=$A$2】,也就是等于完成率的百分比,让显示的数值具有联动性...美化图表 现在教大家如何把简单圆环图美化成封面的第一个图表。双击圆环图【完成率部分】→在弹出的界面中,点击【填充与线条】→勾选【纯色填充】→选择自己喜欢的颜色进行填充,这里我填充为蓝色。 ?...在此界面往下拉,找到【边框】→勾选【实线】→颜色设置为【白色】→宽度设置为【14】;【未完成率部分】照前面的步骤,依次填充为蓝色,线条设置为白色即可。 ? 效果图: ?...第二个图表也很简单,我们先在上个图表的基础下,把填充颜色全部更改为黄色。 ? 接着进行简单的调整:双击【未完成率部分】,在弹出的界面,调整填充颜色的透明度。 ?
在计算机视觉中,轮廓检测是另一个比较重要的任务。它包含的操作有计算矩形边界、圆形边界、多边形边界等等。 我们以下面的黑猫图为例来讲解如何利用OpenCV进行轮廓检测。 ?...,背景须是黑色的灰度图,我们先来个黑白颠倒: img =255- img0 #黑白颠倒,视情况(白色(亮)背景则需要颠倒,使背景变黑色 紧接着转灰度图: gray = cv2.cvtColor(img.copy...之后,我们可以循环求得图形各部分的矩形轮廓线: for c in contours: #对于每一个轮廓 #无倾斜的 边界矩形框 x, y, w, h = cv2.boundingRect...我们可以循环求得图形各部分的最小矩形轮廓线: W,H = img0.shape[0], img0.shape[1] for c in contours: #对于每一个轮廓 # 可倾斜的最小边界矩形框...我们可以循环求得图形各部分的最小闭圆轮廓线: W,H = img0.shape[0], img0.shape[1] for c in contours: #对于每一个轮廓 #最小边界圆
从上面的图像中,我们只想提取与四个地图(头部扫描)相对应的区域,而将其他所有内容都排除在外。因此,让我们开始吧。 第一步是检测我们要提取的片段的边缘。这是一个多步骤过程,如下所述: 1....对于第一部分,我们将使用OpenCV的“ boundingRect()”检测每个轮廓的边界矩形,并检查纵横比(高宽比)是否接近1。 现在我们的任务已经完成,但还需要进行一些微调。...现在我们已经确定了四个部分,我们需要构建图像蒙版,这将使我们能够从原始图像中提取所需的特征。...我们将使用OpenCV函数“ drawContours()”,将颜色用作白色(R,G,B = 255,2555,255),将厚度用作FILLED(-1)在黑色背景上绘制所有四个线段轮廓。...对于白色背景,我们首先创建一个白色画布,然后通过使用OpenCV函数“ drawContours()”绘制轮廓为黑色(R,G,B = 0,0,0)且厚度为FILLED的轮廓,如下所示创建颜色反转的蒙版(
本练习的目标图像包含四个大脑图 从上面的图像中,我们只想提取与四个地图(头部扫描)相对应的区域,而将其他所有内容都排除在外。因此,让我们开始吧。 第一步是检测我们要提取的片段的边缘。...对于第一部分,我们将使用OpenCV的“ boundingRect()”检测每个轮廓的边界矩形,并检查纵横比(高宽比)是否接近1。 现在我们的任务已经完成,但还需要进行一些微调。...现在我们已经确定了四个部分,我们需要构建图像蒙版,这将使我们能够从原始图像中提取所需的特征。...我们将使用OpenCV函数“ drawContours()”,将颜色用作白色(R,G,B = 255,2555,255),将厚度用作FILLED(-1)在黑色背景上绘制所有四个线段轮廓。...在黑色背景上提取的ROI 对于白色背景,我们首先创建一个白色画布,然后通过使用OpenCV函数“ drawContours()”绘制轮廓为黑色(R,G,B = 0,0,0)且厚度为FILLED的轮廓,如下所示创建颜色反转的蒙版
设置图像来源 border-image-slice 设置切分图像的偏移 border-image-width 设置图像边框的宽度 border-image-outset 指定边框图像向外扩展的部分...属性 说明 值 background-color 设置元素的背景颜色,总是显示在背景图像下面 background-img 设置元素的背景图像,如果指定多个,后面的图像绘制在前面图像的下面 background-repeat...轮廓对于边框是可选的。...轮廓有用的地方在于短时间抓住用户对某个元素的注意力,如必须按压的按钮或是数据输入中的错误。 边框和轮廓最大的区别是:轮廓不属于页面,因此应用轮廓不需要调整页面布局。...属性 说明 值 outline-color 设置外围轮廓的颜色 颜色> outline-offset 设置轮廓距离元素边框边缘的偏移量 outline-style 设置轮廓样式 跟border-style
领取专属 10元无门槛券
手把手带您无忧上云