当前位置: 首页 > news >正文

网站统计代码怎么弄企业网站优化推广

网站统计代码怎么弄,企业网站优化推广,mvc网站开发 案例视频,高端网站建设 飞沐【1】引言 前序学习过程中,掌握了灰度图像和彩色图像的掩模操作: python学opencv|读取图像(九)用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 python学opencv|读取图像(四十)掩模:三…

【1】引言

前序学习过程中,掌握了灰度图像和彩色图像的掩模操作:

python学opencv|读取图像(九)用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客

python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖-CSDN博客

也受此启发,尝试直接使用cv2.add()函数让两张图片进行叠加:

python学opencv|读取图像(四十一 )使用cv2.add()函数实现各个像素点BGR叠加-CSDN博客

在此基础上,我们如果进一步尝试,就可以对3张图片进行叠加。

比如,我们已经知晓彩色三通道图像的每一个通道都可以单独设置对应BGR值,它们叠加的效果是新的彩色图像。实际上,这种叠加效果我们早期在没有使用cv2.add()函数的时候,已经悄然获得了:

python学opencv|读取图像(十)用numpy创建彩色图像_cv2 通过numpy创建图像-CSDN博客

此时,在已经、学习了cv2.add()函数的基础上,我们可以进一步验证。

【2】可行性分析

【2.1】未使用cv.add()函数

在python学opencv|读取图像(十)用numpy创建彩色图像_cv2 通过numpy创建图像-CSDN博客文章中,使用的代码为:

import numpy as np  # 引入numpy模块
import cv2 as cv  # 引入cv2模块
from imageio.v2 import imwrite# 定义图像
t = np.arange(300, 600, 20)  # 定义变量,在[300,600)区间,每隔20取一个值
t_max = np.max(t)  # 取变量最大值作为像素大小
print('t_max=', t_max)  # 输出最大值
image = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image[:, :, 0] = 155  # 第一个通道值
image[:, :, 1] = 200  # 第二个通道值
image[:, :, 2] = 255  # 第三个通道值# 显示和保存定义的图像
cv.imshow('display-pho', image)  # 显示图像
cv.imwrite('gray-pho-3.png', image)  # 保存图像
cv.waitKey()  # 图像不关闭
cv.destroyAllWindows()  # 释放所有窗口

这其中的核心代码段,有一个逐层覆盖和叠加的效果:

image[:, :, 0] = 155  # 第一个通道值
image[:, :, 1] = 200  # 第二个通道值
image[:, :, 2] = 255  # 第三个通道值

【2.2】使用cv.add()函数

为验证使用add()函数的叠加效果,在上述代码后面补充一段代码:

image1 = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image1[:, :, 0] = 155  # 第一个图像
image2 = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image2[:, :, 1] = 200  # 第二个图像
image3 = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image3[:, :, 2] = 255  # 第三个图像
img=cv.add(image1,image2) # 第一和第二图像叠加
cv.imshow('display-12', img)  # 显示图像
cv.imwrite('gray-pho-12.png', img)  # 保存图像
img=cv.add(img,image3) # 第一、第二和第三图像叠加
cv.imshow('display-123', img)  # 显示图像
cv.imwrite('gray-pho-123.png', img)  # 保存图像

运行代码后,获得的图像为:

图1 gray-pho-3.png-未使用add()函数

图2 gray-pho-123.png-使用add()函数 

由图1和图2可见,无论是否使用add()函数,图像叠加的本质都是各个通道的BGR值对应相加,获得的图像效果是一样的。

此外,中间的过渡图像,也就是image1[:, :, 0] = 155和image1[:, :,1] = 200叠加后的图像为:

图3 gray-pho-12.png-使用add()函数

【2.3】使用cv.add()函数+掩模效果

在前述的两个测试中,使用的图像叠加都没有尝试掩模效果。

但add()函数本身允许添加一个mask参数来做掩模效果,为验证掩模效果,继续增加下述代码:

#验证掩模效果
mask=np.zeros((t_max, t_max,1),np.uint8)   # 定义一个竖直和水平像素均为t_max的全0矩阵
mask[20:300, 200:500, ] = 200  # 第二个图像
cv.imshow('display-mask', mask)  # 显示图像
cv.imwrite('gray-pho-mask.png',mask)  # 保存图像
img=cv.add(image1,image2,mask=mask) # 第一和第二图像叠加
cv.imshow('display-12-mask', img)  # 显示图像
cv.imwrite('gray-pho-12-mask.png', img)  # 保存图像

这里应用掩模效果的核心代码为:

img=cv.add(image1,image2,mask=mask) # 第一和第二图像叠加

代码运行后的掩模效果为:

图4 gray-pho-12-mask.png-使用add()函数

由图4可见,图像只在使用掩模的区域进行了效果叠加,其他区域仍然保留了全0矩阵对应的纯黑色画布特点。

因为刚好掩模的矩阵赋值也是200,和image2的通道赋值一样,为进一步测试,把这个掩模的矩阵赋值改到255,增加下述代码:

mask1=np.zeros((t_max, t_max,1),np.uint8)   # 定义一个竖直和水平像素均为t_max的全0矩阵
mask1[20:300, 200:500, ] = 255  # 第二个图像
cv.imshow('display-mask', mask1)  # 显示图像
cv.imwrite('gray-pho-mask.png',mask1)  # 保存图像
img=cv.add(image1,image2,mask=mask1) # 第一和第二图像叠加
cv.imshow('display-123-mask', img)  # 显示图像
cv.imwrite('gray-pho-123-mask.png', img)  # 保存图像

此时获得的图像为:

图5 gray-pho-mask.png-掩模

图6 gray-pho-123-mask.png-使用add()函数+掩模

可见,使用掩模效果后,图像依然是image1+image2的效果,且只在掩模控制的区域显示这个叠加效果。

此时的完整代码为:

import numpy as np  # 引入numpy模块
import cv2 as cv  # 引入cv2模块
from imageio.v2 import imwrite# 定义图像
t = np.arange(300, 600, 20)  # 定义变量,在[300,600)区间,每隔20取一个值
t_max = np.max(t)  # 取变量最大值作为像素大小
print('t_max=', t_max)  # 输出最大值
image = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image[:, :, 0] = 155  # 第一个通道值
image[:, :, 1] = 200  # 第二个通道值
image[:, :, 2] = 255  # 第三个通道值# 显示和保存定义的图像
cv.imshow('display-pho', image)  # 显示图像
cv.imwrite('gray-pho-3.png', image)  # 保存图像image1 = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image1[:, :, 0] = 155  # 第一个图像
image2 = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image2[:, :, 1] = 200  # 第二个图像
image3 = np.zeros([t_max, t_max, 3], np.uint8)  # 定义一个竖直和水平像素均为t_max的全0矩阵
image3[:, :, 2] = 255  # 第三个图像
img=cv.add(image1,image2) # 第一和第二图像叠加
cv.imshow('display-12', img)  # 显示图像
cv.imwrite('gray-pho-12.png', img)  # 保存图像
img=cv.add(img,image3) # 第一、第二和第三图像叠加
cv.imshow('display-123', img)  # 显示图像
cv.imwrite('gray-pho-123.png', img)  # 保存图像#验证掩模效果
mask=np.zeros((t_max, t_max,1),np.uint8)   # 定义一个竖直和水平像素均为t_max的全0矩阵
mask[20:300, 200:500, ] = 200  # 第二个图像
cv.imshow('display-mask', mask)  # 显示图像
cv.imwrite('gray-pho-mask.png',mask)  # 保存图像
img=cv.add(image1,image2,mask=mask) # 第一和第二图像叠加
cv.imshow('display-12-mask', img)  # 显示图像
cv.imwrite('gray-pho-12-mask.png', img)  # 保存图像mask1=np.zeros((t_max, t_max,1),np.uint8)   # 定义一个竖直和水平像素均为t_max的全0矩阵
mask1[20:300, 200:500, ] = 255  # 第二个图像
cv.imshow('display-mask', mask1)  # 显示图像
cv.imwrite('gray-pho-mask.png',mask1)  # 保存图像
img=cv.add(image1,image2,mask=mask1) # 第一和第二图像叠加
cv.imshow('display-123-mask', img)  # 显示图像
cv.imwrite('gray-pho-123-mask.png', img)  # 保存图像cv.waitKey()  # 图像不关闭
cv.destroyAllWindows()  # 释放所有窗口

【3】总结

掌握了使用python+opencv实现使用cv2.add()函数进行多图像叠加的技巧,并探索了掩模的影响。

http://www.hkea.cn/news/62652/

相关文章:

  • 网站内链符号seo百度站长工具
  • 网站页面太多是否做静态seo优化软件
  • mac下怎么安装wordpress关键词排名优化易下拉霸屏
  • 国内做国外代购在哪个网站好百度平台客服怎么联系
  • 菏泽网站获客网站建设公司中国站长网入口
  • 黄冈网站建设推荐seo查询排名软件
  • 自己怎么做百度网站广州seo网站公司
  • 京东企业的电子网站建设百度seo教程网
  • 弥勒网站设计公司share群组链接分享
  • 网站建设栏目管理百度推广搜索排名
  • 企业管理类的网站全球搜是什么公司
  • 网站开发自我介绍seo报告
  • 网站应用软件设计海口seo网络公司
  • 武汉站建设深圳网站开发制作
  • 网站建设的平台分析北京seo技术
  • 手表价格网站百度推广天津总代理
  • 如何将域名和网站绑定排名seo怎么样
  • 旅游网站推广方案色盲测试图
  • 现在开发个网站多少钱安全优化大师
  • 网站开发工程师工资多少百度统计工具
  • 征信报告优化大师好用吗
  • 一个ip地址做多个网站网络营销公司是做什么的
  • 赤峰网站建设公司旅行网站排名
  • seo网站优化工具软件拉新推广平台
  • 政府网站设计方案无锡网站制作优化
  • 社交网站盈利吗如何在各种网站投放广告
  • 建设工程合同民法典东莞快速优化排名
  • 泗县口碑营销互联网营销推荐咨询青岛seo计费
  • 做电影网站用什么服务器中文域名注册官网入口
  • 做网站那里好win10系统优化工具