灰度图

微服务治理实践 | 金丝雀发布

拟墨画扇 提交于 2020-03-11 17:54:38
前言 阿里巴巴集团内部有不少故障是因为发布直接或间接引起。因此提升发布的质量,减少错误的发生,是有效减少线上故障的一个关键环节。 为什么大部分的故障和发布相关?因为发布是整个功能更新到线上的最后一个环节,一些研发过程中累计的问题,在最后发布环节才会触发。同时发布本身也是一个复杂的过程,在发布过程中,往往容易出现一些错误操作或者遗漏关键操作。 日常发布中,我们常常会有如下一些错误的想法: 这次改动的内容比较小,而且上线要求比较急,就不需要测试直接发布上线好了 发布不需要走灰度流程,快速发布上线即可 灰度发布没有什么用,就是一个流程而已,发布完就直接发布线上,不用等待观察 虽然灰度发布很重要,但是灰度环境很难搭建,耗时耗力优先级并不高 这些想法都可能让我们进行一次错误的发布。 阿里巴巴内部有安全生产三板斧概念: 可灰度、可观测、可回滚。所有研发同学必须要掌握发布系统的灰度、观测和回滚功能如何使用。 今天我们来聊聊灰度发布。 灰度发布策略 灰度发布是发布整个过程中一个非常重要的环境。目前灰度发布策略有这几种: 蓝绿发布(Blue-Green Deployment) 通过部署两套环境来解决新老版本的发布问题。如果新版本(New Version)发生问题要进行回滚的时候,直接通过切流将流量全部切到老版本(Old Version)上。 优点:升级切换和回退比发布回滚迅速 缺点:成本较高

灰度转换(1):RGB分量实现Gray灰度效果

六眼飞鱼酱① 提交于 2020-03-04 10:37:03
  Gray灰度图像:即我们常说的黑白图像,由黑到白的灰阶为 0- 255(8bit)。   本博客整理一下 RGB 分量实现 Gray 灰度效果的实验,这个实验非常的简单,简单到看到代码就感觉非常无语...... 一、RGB分量转Gray灰度的原理   RGB格式即一个像素由R、G、B三基色构成,例如 RGB565 格式的像素排列为R[4:0]、G[5:0]、B[4:0],RGB三个分量的数值不同,最后合成的像素颜色则不同。   RGB分量转Gray灰度即只挑取 R 或 G 或 B 的 1 个分量,剩下的 2 个分量丢弃,其位置由挑取的分量来替代。 二、MATLAB   此次实验选择了一张 RGB 分量明显的图片,先从 MATLAB 软件中查看效果如何。代码如下所示: clc; clear all; RGB = imread('flower.bmp'); %读取图像 R_gray = RGB(1:end,1:end,1); %提取R分量后的灰度图 G_gray = RGB(1:end,1:end,2); %提取R分量后的灰度图 B_gray = RGB(1:end,1:end,3); %提取R分量后的灰度图 subplot(2,2,1);imshow(RGB); title('原图'); subplot(2,2,2);imshow(R_gray);title('R分量灰度图');

MATLAB(8)

被刻印的时光 ゝ 提交于 2020-01-26 20:02:32
MATLAB(第八讲) 灰度图的腐蚀与膨胀 灰度图的腐蚀 用结构元素的中心点,从左到右从上到下,依次扫描灰度图的像素点,图片上该像素点的值取为结构元素所覆盖区域中像素点的 最小值 ,扫描一遍后会得到一张新图,就是原图的腐蚀图。 用该结构元素: 对下面矩阵进行腐蚀 对第一个像素点的腐蚀操作如下: 当移动到中间某像素点时腐蚀操作如下: 灰度图的膨胀 用结构元素的中心点,依次扫描灰度图的每个像素点,图片上该像素点的值取为结构元素覆盖的所有像素点中的 最大值 ,扫描一遍后会得到一张新图,就是原图的膨胀图。 用该结构元素: 对下面矩阵进行膨胀 对第一个像素点的膨胀操作如下: 扫描到中间某像素点时的膨胀操作为: 顶帽操作 顶帽操作的效果等同于 原图-开运算 ,即原图减去开运算的图像。顶帽用来对灰度图进行操作。函数为: tophat = imtophat( g , se ); (= g - g_open ; ) 顶帽操作通常用来去除背景。 底帽操作 底帽操作的效果等同于 原图-闭运算 ,即原图减去闭运算的图像。底帽用来对灰度图进行操作。函数为: bothat = imbothat( g , se ); (= g - g_close ; ) 注:顶帽和底帽操作都是对于灰度图的操作。 顶帽和底帽的应用 对下图进行顶帽和底帽操作,查看效果。 步骤: 首先将图片转为灰度图

MATLAB(7)

筅森魡賤 提交于 2020-01-26 18:17:49
MATLAB(第七讲) 形态学处理应用 找出图中的文字 效果 思路 利用腐蚀膨胀和图像重建,在文字所在地方利用重建,找出文字 步骤 先把图像转换为灰度图 再把图像转换为二值图 观察灰度图,发现灰色部分较多,而字的白色较明显,可以利用imbinarize的参数,将偏灰的一些元素变为黑色,将特别白的地方转化为白色。 对 imbinarize 函数的使用具体见第四讲。 代码: clear,clc,close all; f=imread('ws.jpg'); g=rgb2gray(f); imshow(g); bw_just=imbinarize(g,0.99); %将大于灰度图取值的0.99的部分转换为白色,小于的转换为黑色 figure,imshow(bw_just); 去除多余的小对象 通过观察可以看到,在字的旁边有很多杂乱的小对象,可以用 bwareaopen 去除。 新增代码为: bw_ao=bwareaopen(bw_just,100); %去除大小小于100的对象 figure,imshow(bw_ao); 利用默认参数将原图转换为二值图 本例的目的为得到中间的几个字,上一步所处理得到的图像为字的一部分,自然可以想到利用在原图的重建,得到字体,因此先将原图转换为二值图,便可得到清晰的四个字,如下所示: 新增代码为: b=imbinarize(g,0.5); figure

cv2.imread用法

不羁岁月 提交于 2019-12-16 20:11:34
#如果dir对应的是灰度图 m1 = cv2.imread(dir,cv2.IMREAD_GRAYSCALE) m2 = cv2.imread(dir) #如果不设置灰度图读入的话,m2则默认RGB读入,复制三个完全相同的通道得到最终的图片 #m1可以得到正常的灰度图 #如果dir对应的是彩色图,直接imread即可 生成BGR通道的彩色图像 print('yes') 来源: CSDN 作者: 文鸿wow 链接: https://blog.csdn.net/qq_34430032/article/details/103567986

灰度发布(上线)和AB Test

南笙酒味 提交于 2019-12-10 05:37:51
原文地址: https://blog.csdn.net/maxmao1024/article/details/84305609 一、灰度发布 1. 简介 灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。 通过不同策略对用户进行分流,不同的用户组使用不同的应用版本。 2. 优点 互联网服务变动频繁,发布周期短。速度与质量总是难以双全。灰度发布有以下优点: 降低发布风险,减少影响范围 可以灰度测试帐号,降低测试依赖,减少线下自测的数据构造成本 方便回滚 3. 缺点 开发、测试和部署的成本较高 数据存储层需要兼容 二、AB Test 1. 简介 AB test 是一种灰度方式,通常差异度较小,侧重于从多种方案中选择最优方案。 简单来说,就是为同一个目标制定两个方案(比如两个页面),让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符。 一般来说,每个设计方案应该大体上是相同的,只是某一个地方有所不同,比如某处排版、文案、图片、颜色等。然后对不同的用户展示不同的方案。 2. 优缺点 优点:避免选择分歧和反复试错,优化决策,最终方案有数据支持 缺点:开发和测试周期增加,多套方案出现问题的可能性更高 3. 核心思想 多方案并行测试 同一个用户(一般通过cookie控制)展现同一版本 以某种规则优胜劣汰。 4. 实现步骤 定义策略:确定分流的目的

灰度图

馋奶兔 提交于 2019-12-10 02:06:49
除了常见的卫星图像、航空照片外,许多地球物理观测数据也以灰度表示。以位场图像为例,把位场表示为灰度图,需要将位场观测值灰度量化,即将场的变化范围转换成256阶的灰度范围。由于位场的动态变化范围非常大,磁场可达数万个纳特,重力场也可能在数百个重力单位内变化,所以在显示为图像前通常需要对位场观测值进行拉伸或压缩。 什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度: 1.浮点算法:Gray=R 0.3+G 0.59+B 0.11 2.整数方法:Gray=(R 30+G 59+B 11)/100 3.移位方法:Gray =(R 76+G 151+B*28)>>8; 4.平均值法:Gray=(R+G+B)/3; 5.仅取绿色:Gray=G; 通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了 来源: CSDN 作者: 理想丶 链接: https://blog.csdn.net/weixin_43838785/article/details/103463917

在显示图片上im.show的问题

瘦欲@ 提交于 2019-12-06 12:02:35
问题一:我图片读入是tensor类型的,但是我要变成nadrry类型或者用im.show显示(im.show显示所用到的就是nadrry类型) for image, label, filename in loader: sess = tf.Session() sess.run(tf.global_variables_initializer()) img = np.transpose(image, (0, 2, 3, 1)) img_numpy = img.numpy()[0] plt.imshow(img_numpy) # 显示图片 # plt.axis('off') # 不显示坐标轴 plt.show() b = img_numpy.shape print(filename) print(b) 首先,在神经网络中,图像被表示成 [c, h, w] 格式或者 [n, c, h, w] 格式。 im.show显示的shape为[n,h,w,c],而我们直接读取文件格式是[n,c,h,w],为了转成[n,h,w,c]形式,我采用 img = np.transpose(image, (0, 2, 3, 1)) 问题二:[n,h,w,c]为啥im.show显示不出来 im.show显示的图片格式为[h,w,c],没有通道n,所以我将n通道去除: img_numpy = img.numpy(

opengl读取灰度图生成三维地形并添加光照

戏子无情 提交于 2019-12-03 13:34:29
转自: https://www.cnblogs.com/gucheng/p/10152889.html 准备第三方库 glew、freeglut、glm、opencv 准备一张灰度图 最终效果 代码如下 代码包括主程序源文件mainApp.cpp、顶点着色器shader.vs、片元着色器shader.fs mainApp.cpp #include <stdio.h> #include <string.h> #include <iostream> #include <fstream> #include <sstream> #include <GL/glew.h> #include <GL/freeglut.h> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> using namespace std; using namespace cv; using namespace glm; //shader文件 const char* vsShaderName = "shader.vs";/

ue4读取灰度图生成三维地形mesh

和自甴很熟 提交于 2019-12-03 13:32:39
转自: https://www.cnblogs.com/gucheng/p/10116857.html 新建ue c++工程。 在Build.cs中添加"ProceduralMeshComponent"模块。 在 uproject中添加"ProceduralMeshComponent"模块。 创建材质,传入grass贴图 导入灰度图资源 创建继承自Actor的类 ATerrainCreateActor,并创建蓝图类对象 将蓝图对象拖入场景,设置其灰度贴图参数、Z值缩放比例参数、材质参数 最终效果 ATerrainCreateActor类代码如下 头文件 #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "ProceduralMeshComponent.h" #include "TerrainCreateActor.generated.h" UCLASS() class UETERRAIN_API ATerrainCreateActor : public AActor { GENERATED_BODY() public: ATerrainCreateActor(); private: UPROPERTY(VisibleAnywhere)