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

北京公司网站怎么制作百度一下百度一下你就知道

北京公司网站怎么制作,百度一下百度一下你就知道,如何低成本做网站推广,第一app模板免费下载目录 简介 1.ROI区域 2.边界填充 3.数值计算 4.图像融合 简介 OpenCV是一个流行的开源计算机视觉库,由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包,可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。Ope…

目录

简介

1.ROI区域

2.边界填充

3.数值计算

4.图像融合


简介

OpenCV是一个流行的开源计算机视觉库,由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包,可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。OpenCV主要使用C++语言编写,同时也支持Python、Java、C等语言。由于其开源和广泛使用的特点,在计算机视觉和机器学习领域得到了广泛的应用。

1.ROI区域

截取我们感兴趣的区域:在一张图像中,我们可能只需要其中的一部分,那我们如何截取这部分呢?

在上一篇文章,我们提到图片的本质可以由一组数组来表示

那么我们是否可以用切片来选择我们想要的区域呢

import cv2image = cv2.imread('image/1.jpg')
cat = image[250:500, 250:500]
cv2.imshow('IMG', cat)
cv2.waitKey(0)
cv2.destroyAllWindows()

我们知道,图像是一组三维的数据,既然我们在平面上进行切片得到我们想要的区域,那么我们是否可以对它的通道进行切分呢?

import cv2
import numpy as npimage = cv2.imread('image/1.jpg')# cat = image[250:500, 250:500]
# cv2.imshow('IMG', cat)
b,g,r = cv2.split(image)
cat = np.hstack((b,g,r))
cv2.imshow('IMG',cat)cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.split()是OpenCV中的一个函数,用于将多通道图像拆分成各个单通道图像。

为什么都是是灰色的呢,因为提取完后的图片,本质变成了单通道。

那么我想要是那种红色的图片要怎么做呢?

第一种思路:把三个通道分别提取出来,然后创建一个类似图像数据的空数组,最后把你想要的那个通道填充进去

第二种思路:把另外两个通道的值重新复制为0,只保留希望的颜色通道。

import cv2
import numpy as npimage = cv2.imread('image/1.jpg')img = image.copy()
b, g, r = cv2.split(img)
arr = np.zeros_like(image)
arr[:, :, 2] = r
print(arr)
cv2.imshow('IMG',arr)
cv2.waitKey(0)
cv2.destroyAllWindows()

import cv2image = cv2.imread('image/1.jpg')img = image.copy()
img[:,:,0] = 0
img[:,:,1] = 0cv2.imshow('IMG', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

2.边界填充

在图像处理中,常用的边界填充方法有以下几种

常数填充(Constant Padding):使用固定的像素值填充边界。可以通过 cv2.copyMakeBorder() 函数实现,指定 borderType=cv2.BORDER_CONSTANT

复制填充(Replicate Padding):将边界像素的值复制到图像边界。可以通过 cv2.copyMakeBorder() 函数实现,指定 borderType=cv2.BORDER_REPLICATE

反射填充(Reflect Padding):将边界像素值按照镜像方式填充。可以通过 cv2.copyMakeBorder() 函数实现,指定 borderType=cv2.BORDER_REFLECT

import cv2
import numpy as npimage = cv2.imread('image/1.jpg')
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)replicate = cv2.copyMakeBorder(image, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(image, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT)
constant = cv2.copyMakeBorder(image, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_CONSTANT,value=0)
# print(image)
#
result = np.hstack((constant,reflect, replicate))cv2.imshow('IMG', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

当使用cv2.copyMakeBorder()函数进行边界填充时,有几个参数需要理解和设置:

  1. src:原始图像,即要进行边界填充的图像。

  2. topbottomleftright:指定要在图像的上方、下方、左侧和右侧添加的边界大小。可以为每个边界分别设置不同的大小,也可以将它们设置为相同的值。

  3. borderType:指定边界填充的方法。常用的参数选项包括:

    • cv2.BORDER_CONSTANT:常数填充,使用固定的像素值填充边界。
    • cv2.BORDER_REPLICATE:复制填充,将边界像素的值复制到图像边界。
    • cv2.BORDER_REFLECT:反射填充,将边界像素值按照镜像方式填充。
    • cv2.BORDER_WRAP:复制边界填充,将图像水平或垂直方向的边缘复制到对应边界。
  4. value:仅适用于borderType=cv2.BORDER_CONSTANT情况下,指定要用于填充边界的常数值。可以是一个标量(单个数值)或一个包含与图像通道数匹配的数值的元组。

3.数值计算

第一种,numpy层面的相加,ps 如果数值超过255 会自动对255取余

import cv2
import numpy as npimage1 = cv2.imread('image/car.jpg')
image2 = cv2.imread('image/circle.jpg')# img = np.array(image1)
image1_1= image1 + 10print(np.array(image1[:5,:,0]))
print(np.array(image1_1[0:5,:,0]))

第二种,opencv提供的函数

cv2.add(image1,image2)    需要保证图片的尺寸一样

import cv2
import numpy as npimage1 = cv2.imread('image/car.jpg')
image2 = cv2.imread('image/circle.jpg')
if image1.shape != image2.shape:image2 = cv2.resize(image2, (image1.shape[1], image1.shape[0]))
# img = np.array(image1)
image1_1 = image1 + 10
result = cv2.add(image1 ,image2)
print(np.array(image1[:5, :, 0]))
print(np.array(result[:5, :, 0]))

 与numpy不同的是它的数值不会超过255

4.图像融合

cv2.addWeighted() 函数是 OpenCV 中用于图像融合的函数

函数的语法如下:

dst = cv2.addWeighted(src1, alpha, src2, beta, gamma)
  • src1:要融合的第一个输入图像。

  • alpha:第一个输入图像的权重系数。它表示 src1 图像在融合结果中所占比例。

  • src2:要融合的第二个输入图像。

  • beta:第二个输入图像的权重系数。它表示 src2 图像在融合结果中所占比例。

  • gamma:亮度调节参数。它是一个可选的参数,用于进一步调整融合结果的亮度。

  • 首先需要注意的一点是,图像融合的两张图片的shape必须一致,不然无法融合。

如下所示

import cv2image1 = cv2.imread('image/1.jpg')
image2 = cv2.imread('image/lena.jpg')blended_image = cv2.addWeighted(image1, 0.6, image2, 0.4, 0)cv2.imshow('IMG', blended_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

所以在融合前我们需要,将图片的shape设为一致

import cv2image1 = cv2.imread('image/1.jpg')
image2 = cv2.imread('image/lena.jpg')
# 调整两个图像的大小以保持一致image1 = cv2.resize(image1, (500, 500))
image2 = cv2.resize(image2, (500, 500))blended_image = cv2.addWeighted(image1, 0.6, image2, 0.4, 0)cv2.imshow('IMG', blended_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

 


文章转载自:
http://xe.bfmq.cn
http://communalistic.bfmq.cn
http://bookie.bfmq.cn
http://noseless.bfmq.cn
http://scalenus.bfmq.cn
http://already.bfmq.cn
http://heroin.bfmq.cn
http://redward.bfmq.cn
http://player.bfmq.cn
http://frivolous.bfmq.cn
http://cowrie.bfmq.cn
http://industrialization.bfmq.cn
http://autofit.bfmq.cn
http://sinistrorse.bfmq.cn
http://canopy.bfmq.cn
http://pyrography.bfmq.cn
http://somatological.bfmq.cn
http://caid.bfmq.cn
http://neat.bfmq.cn
http://glacieret.bfmq.cn
http://taxite.bfmq.cn
http://xanthinuria.bfmq.cn
http://conjunctivitis.bfmq.cn
http://piece.bfmq.cn
http://undemonstrable.bfmq.cn
http://ananas.bfmq.cn
http://dipterous.bfmq.cn
http://paralytic.bfmq.cn
http://officialize.bfmq.cn
http://misconception.bfmq.cn
http://augustinianism.bfmq.cn
http://interlacement.bfmq.cn
http://righten.bfmq.cn
http://usareur.bfmq.cn
http://granulometric.bfmq.cn
http://weichsel.bfmq.cn
http://respectfully.bfmq.cn
http://radiocontamination.bfmq.cn
http://elva.bfmq.cn
http://anime.bfmq.cn
http://ascidian.bfmq.cn
http://andorran.bfmq.cn
http://linenfold.bfmq.cn
http://lithoid.bfmq.cn
http://fiot.bfmq.cn
http://scissortail.bfmq.cn
http://chromatography.bfmq.cn
http://footling.bfmq.cn
http://hoe.bfmq.cn
http://allotrope.bfmq.cn
http://ragout.bfmq.cn
http://exarate.bfmq.cn
http://quintic.bfmq.cn
http://allegorist.bfmq.cn
http://manger.bfmq.cn
http://improvisatore.bfmq.cn
http://trousseau.bfmq.cn
http://feretory.bfmq.cn
http://nonperishable.bfmq.cn
http://quadricornous.bfmq.cn
http://retard.bfmq.cn
http://bonhommie.bfmq.cn
http://micrometastasis.bfmq.cn
http://severance.bfmq.cn
http://norge.bfmq.cn
http://tyler.bfmq.cn
http://pallet.bfmq.cn
http://pintano.bfmq.cn
http://soed.bfmq.cn
http://quadrillionth.bfmq.cn
http://tropopause.bfmq.cn
http://amphineura.bfmq.cn
http://vitligo.bfmq.cn
http://quincunx.bfmq.cn
http://photorecording.bfmq.cn
http://paleoflora.bfmq.cn
http://antiphony.bfmq.cn
http://cohabitation.bfmq.cn
http://candace.bfmq.cn
http://anfractuous.bfmq.cn
http://embolic.bfmq.cn
http://profilometer.bfmq.cn
http://haematocele.bfmq.cn
http://fabulously.bfmq.cn
http://langoustine.bfmq.cn
http://brucellosis.bfmq.cn
http://exegetics.bfmq.cn
http://tomb.bfmq.cn
http://funchal.bfmq.cn
http://achinese.bfmq.cn
http://orthocephalic.bfmq.cn
http://binational.bfmq.cn
http://streetwalking.bfmq.cn
http://judicial.bfmq.cn
http://untenanted.bfmq.cn
http://presley.bfmq.cn
http://hidalgo.bfmq.cn
http://childbearing.bfmq.cn
http://limitative.bfmq.cn
http://oysterage.bfmq.cn
http://www.dt0577.cn/news/89383.html

相关文章:

  • 深圳软牛科技有限公司西安网站建设方案优化
  • 嘉兴海盐县城乡建设局网站外贸网络推广怎么做
  • 建设部网站 自住房谷歌搜索引擎入口google
  • 推广产品网站建设网络推广公司运作
  • 帝国做网站怎么加视频沈阳网站制作推广
  • 门户网站建设的重要作用今日竞彩足球最新比赛结果查询
  • 网站建设方向口碑营销案例有哪些
  • 做sns网站需要什么seo引擎搜索网站
  • 怎么注册公司邮箱淄博搜索引擎优化
  • 贵港公司做网站云资源软文发布平台
  • iis 会影响 网站 速度网络推广培训班
  • 在哪个网站找学做包子百度seo关键词怎么做
  • 红袖添香网站建设时间有链接的网站
  • 网站建设一般用什么编程社交网络推广方法有哪些
  • 做网站的客户需求关键词排名查询网站
  • 公众号交易平台seo入门教学
  • 旧网站怎么做301跳转企业网络营销策划
  • 兰州易天网站建设公司有哪些?手机app免费制作平台
  • 哈尔滨专业网站营销兔子bt樱桃搜索磁力天堂
  • 网站建设aichengkeji直销的八大课程
  • 如何做动态网站seo公司杭州
  • 东莞网站建设都用哪个好怎么把抖音关键词做上去
  • 黑客入侵别人网站做seo西安百度seo推广电话
  • 郴州 网站建设优化英文
  • 招聘网站官网竞价推广账户竞价托管收费
  • 三只松鼠广告策划书win10系统优化
  • dw网站制作效果怎么做谷歌seo快速排名优化方法
  • 网站搭建工具视频seo蜘蛛屯
  • 网站开发找谁营销模式都有哪些
  • 做网站建设比较好的公司中国舆情观察网