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

金顶街网站建设注册公司需要少钱

金顶街网站建设,注册公司需要少钱,如何网络推广优化,软件开发公司照片目录 一、简单数值计算 二、opencv中提供函数进行计算 三、cv2.addWeighted 一、简单数值计算 在opencv中,我们有许多可以获取图像各类数值的办法,许多函数能获得各种方面的数据。但如果我们什么都不用,仅仅对图像上每一个点做加法运算会…

目录

一、简单数值计算

二、opencv中提供函数进行计算

三、cv2.addWeighted


 

 

一、简单数值计算

在opencv中,我们有许多可以获取图像各类数值的办法,许多函数能获得各种方面的数据。但如果我们什么都不用,仅仅对图像上每一个点做加法运算会发生什么?

import cv2img1 = cv2.imread('3.jpg')img2 = img1 + 10print(img1[:5,:,0])
print(img2[:5,:,0])cv2.imshow('img1', img1)
cv2.imshow('img2', img2)cv2.waitKey(0)

这里,我们先导入opencv库,然后将名为“3.jpg”的图片读进来。 回忆一下,imread()函数返回的是一个Numpy数组,这个数组通常是三维数组,包含了高度、宽度、通道数。对于彩色图像,通道数一般为3。

第4行让img2=img1+10,相当于给读进来的图像的每一像素的三个通道都加了10

代码第6行使用数组的知识,创建了一个图像的前 5 行像素的第一个通道的切片,并将其打印出来,最后将原来的图像和改变后的图像显示出来,如下图所示:

46d655606ae34347b97cdb8d4a4f9384.png

bbbfef6e1e314f57bdbec3bf54b3c552.png

可以看到,新的图像已经不成样子了。对比前后输出的两个二维列表可以发现,列表中的每一个值都加了10,但有的直接变成了个位数。 这是因为,列表中的每个值只能从0~255这256个值中选择一个,但254+10=264,已经超出了255的范围,所以在求余256后得到了新的图像值。

接下来我们让两个图像的值直接相加,看看会发生什么。

import cv2img1 = cv2.imread('3.jpg')
img2 = cv2.imread('4.jpg')img3 = img1 + img2print(img3[:5,:,1])cv2.imshow('img3', img3)cv2.waitKey(0)

这里,前面的步骤与上面一样,这里多读进来一张图片,并将两张图片直接相加,结果赋值给img3,并将img3显示出来。

可是运行却出现了如下报错:

4623e776821c406886c2c2f878c84a17.png

这个报错的意思是,在执行img1+img2的代码时,程序发现用来相加的两个数组高度、宽度不一样,所以没有办法相加。这告诉我们,在执行图像加法时,两个图像的高度、宽度、通道都必须一致。 

我们修改一下代码:

import cv2img1 = cv2.imread('3.jpg')
img2 = cv2.imread('4.jpg')img1 = cv2.resize(img1, (272, 245))img3 = img1 + img2print(img3[:5,:,1])cv2.imshow('img3', img3)cv2.waitKey(0)

这里,我们在执行加法之前加了一个cv2.resize函数,重新设定了img1图像的大小使其与img2相同。这样就能执行加法了,运行结果如下:

05d6362b7df740aea813d9b7b7e30d12.png

4b5243aad92f44f8a3b49ee41e003ed0.png

看起来还是蛮掉san的。 

二、opencv中提供函数进行计算

但其实,opencv中给我们提供了一个加法函数cv2.add(),它与加法的区别在哪里,我们来运行看一下:

import cv2img1 = cv2.imread('3.jpg')
img2 = cv2.imread('4.jpg')img1 = cv2.resize(img1, (272, 245))img3 = cv2.add(img1, img2)print(img3[:5,:,1])cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.imshow('img3', img3)cv2.waitKey(0)

8da3cd643e344f26a8bdb2e722d6d2bd.png 

00af1e0cec254aa092224595d66accd0.png

在输出的列表中可以看到,上次超出255范围被求余的数值,现在统统变成了255,相当于越界的数值被强制设置为了255,不再进行求余操作。

但是很明显,这样的图像相加并没有满足我们的要求,得到的图像都没法看。怎么办呢?opencv也提供了相应的函数给我们使用。

三、cv2.addWeighted

在opencv中,cv2.addWeighted函数用于更加精准的图片叠加。数学计算的公式为:

eq?R%3D%5Calpha%20x_%7B1%7D+%5Cbeta%20x_%7B2%7D+b

其中,R代表叠加后的图像,eq?x_%7B1%7D ,eq?x_%7B2%7D代表参与叠加的两个图像,eq?%5Calphaeq?%5Cbeta分别代表两张图像的权重,b代表标量值,加到加权和上。

在代码中,需要这么写:

import cv2img1 = cv2.imread('3.jpg')
img2 = cv2.imread('4.jpg')img1 = cv2.resize(img1, (272, 245))img3 = cv2.addWeighted(img1, 0.4, img2, 0.6, 0)print(img3[:5,:,1])cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.imshow('img3', img3)cv2.waitKey(0)

这段代码中,cv2.addWeight()传入了五个参数,分别是叠加图像1eq?x_%7B1%7D,图像1的权重eq?%5Calpha,叠加图像2eq?x_%7B2%7D,图像2的权重eq?%5Cbeta以及标量值b。

运行结果如下:

75cb0356ac884a79abe22f5f0448382d.png

 这样看起来,图像的叠加就不会显得生硬了。

 

http://www.yayakq.cn/news/617133/

相关文章:

  • 广东专业网站优化公司浏览器收录网站
  • 怎么做贝店式的网站百度统计怎么使用
  • 网站网站设计的公司智林东莞网站建设公司
  • 微做网站中国建设部门官方网站
  • 兼职做商务标哪个网站杭州网站建设h5
  • 网站怎么做关键词搜索排面郑州全平台广告推广
  • 手机商城网站案例网站建设项目招标标书
  • 怎样自己做代刷网站苏州有什么好玩的
  • 网站后台更新栏目做域名代理网站
  • wordpress对接微信网站优化软件推荐
  • 档案馆网站机房建设必应搜索国际版
  • 外贸网站建设哪里实惠舆情分析软件
  • 29网站建设全部免注册个人网站制作
  • 郑州专业网站建设公司陕西今天最新消息新闻
  • 个人网站建设教程pdf那曲网站建设罗斯
  • 想学做网站seo 在哪学 电话多少动易网站cms
  • 开发一个手机网站要多少钱哪个网站可以帮人做ppt
  • 公司新闻做网站todoist wordpress
  • 花都高端网站建设做网站月薪
  • wdcp网站备份深圳网络推广专员
  • 徐州方案公示在哪个网站网站平台建设设备清单
  • 潍坊网站模板建站搬家公司怎么做网站
  • 三里河网站建设公司做英文的小说网站
  • 无备案网站微信合肥网站建设公司排名
  • 如何做线上网站的网站做牛津布面料在哪个网站找客户
  • pc 移动端网站建设成都高薪南网站建设
  • 宝应做网站素材库网站
  • 装修网站vr全景图怎么做美容手机网站模板
  • 九江本土专业网站建设共享虚拟主机普惠版做网站
  • 网站建设与制作德州深圳网站建设智能小程序