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

商城网站建设天软科技百度网盘搜索引擎入口在哪

商城网站建设天软科技,百度网盘搜索引擎入口在哪,乐清网络公司哪家最好,云南专业做网站多少钱【1】引言 前序学习了图像的得加方法,包括使用add()函数直接叠加BGR值、使用bitwise()函数对BGR值进行按位计算叠加和使用addWeighted()函数实现图像加权叠加至少三种方法。文章链接包括且不限于: python学opencv|读取图像(四十二&#xff…

【1】引言

前序学习了图像的得加方法,包括使用add()函数直接叠加BGR值、使用bitwise()函数对BGR值进行按位计算叠加和使用addWeighted()函数实现图像加权叠加至少三种方法。文章链接包括且不限于:

python学opencv|读取图像(四十二)使用cv2.add()函数实现多图像叠加-CSDN博客

python学opencv|读取图像(四十九)使用cv2.bitwise()系列函数实现图像按位运算-CSDN博客 

python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果-CSDN博客 

这些方式都是实现图片的整体叠加,如果有时候想实现局部覆盖,就需要新的方法,这就是本文的学习目标。

【2】可行性分析

实现局部覆盖,本质上是改变了图像局部像素点上的BGR值,所以从更改BGR值的角度,这个目标可行。

首先,引入一张图像,然后从另一个图像里截取部分图像的BGR值形成第三个图,再把第三个图盖到第一个图像上就可以。

【3】代码测试

按照前述可行性分析思路,先引入相关模块和初始图像:

import cv2 as cv # 引入CV模块
import numpy as np #引入numpy模块# 读取图片
srcx = cv.imread('srcx.png') #读取图像srcx.png
srcp = cv.imread('srcp.png') #读取图像srcp.png
rowsx,colsx,cansx=srcx.shape #读取图像属性
rowsp,colsp,cansp=srcp.shape #读取图像属性
print('srcx的图像属性为:',srcx.shape)
print('srcp的图像属性为:',srcp.shape)

代码引入了两个图像:srcx.png和srcp.png,并且对图像的基本属性进行了读取。

之后先截取第二张图像的部分像素区域:

#截取部分图像
srcp0=srcp[int(0.5*rowsp):int(0.8*rowsp),int(0.2*colsp):int(0.6*colsp),:]
rowsp0,colsp0,cansp0=srcp0.shape #读取图像属性
print('srcp0的图像属性为:',srcp0.shape)

之后用上一步截取的图像,直接覆盖到srcx.png上:

#srcx的部分像素点BGR值被srcp0覆盖
srcx[int(0.5*rowsx):int(0.5*rowsx)+rowsp0,int(0.26*colsx):int(0.26*colsx)+colsp0,:]=srcp0

这里使用的是等大的像素区域,使用截取BGR值覆盖原有BGR值。

然后直接输出图像:

#显示和保存图像
cv.imshow('srcx',srcx) #显示图像
cv.imwrite('srcx0.png',srcx) #保存图像
cv.imshow('srcp',srcp) #显示图像
cv.imshow('srcp0',srcp0) #显示图像
cv.imwrite('srcp0.png',srcp0) #保存图像cv.waitKey()  # 图像不关闭
cv.destroyAllWindows()  # 释放所有窗口

代码运行使用的图像有:

图1 第一张图像srcx.png

图2 第二张图像srcp.png 

截取后的部分图像为:

图3 截取图像srcp.png  

使用BGR覆盖后获得的叠加图像效果为:

图4 截取图像BGR覆盖叠加图像srcx0.png  

由图4可见,截取图像BGR覆盖叠加第一张图像后获得的srcx0.png 相对于初始图像srcx.png,完全覆盖了部分区域。

此时获得的图像基本属性读取数据为:

图5 读取图像属性值 

图5展示的图像基本属性值,给出了第一张初始图像srcx.png和第二张初始图像srcp.png的像素值,之外还给出了截取图像srcp0.png的像素值。

【4】细节说明

进行BGR值覆盖时,应注意像区域的划分:

图6 像素区域划分

如图6所示,像素区域划分过程中:

a.应保证像素其实点保持一致,如行的起始都是0.5*rows,列的起始都是0.25*cols,因为只有这样才能保证BGR覆盖的区域和截取的图像等大;

b.应确保像素值都是整数,不确定的时候就用int()强行转化。

此时的完整代码为:

import cv2 as cv # 引入CV模块
import numpy as np #引入numpy模块# 读取图片
srcx = cv.imread('srcx.png') #读取图像srcx.png
srcp = cv.imread('srcp.png') #读取图像srcp.png
rowsx,colsx,cansx=srcx.shape #读取图像属性
rowsp,colsp,cansp=srcp.shape #读取图像属性
print('srcx的图像属性为:',srcx.shape)
print('srcp的图像属性为:',srcp.shape)#截取部分图像
srcp0=srcp[int(0.5*rowsp):int(0.8*rowsp),int(0.2*colsp):int(0.6*colsp),:]
rowsp0,colsp0,cansp0=srcp0.shape #读取图像属性
print('srcp0的图像属性为:',srcp0.shape)#srcx的部分像素点BGR值被srcp0覆盖
srcx[int(0.5*rowsx):int(0.5*rowsx)+rowsp0,int(0.26*colsx):int(0.26*colsx)+colsp0,:]=srcp0#显示和保存图像
cv.imshow('srcx',srcx) #显示图像
cv.imwrite('srcx0.png',srcx) #保存图像
cv.imshow('srcp',srcp) #显示图像
cv.imshow('srcp0',srcp0) #显示图像
cv.imwrite('srcp0.png',srcp0) #保存图像cv.waitKey()  # 图像不关闭
cv.destroyAllWindows()  # 释放所有窗口

【5】总结

掌握了使用python+opencv使用BGR值覆盖的方式实现图像叠加效果的技巧。

http://www.fp688.cn/news/146337.html

相关文章:

  • 电子图书馆网站建设深圳网站设计实力乐云seo
  • 如何做教育公司网站网络营销知识
  • 发卡网站源码下载个人免费网站创建入口
  • 西安云英网站建设百度广告推广价格
  • 做医药代表去什么招聘网站网站性能优化
  • 网站建设背景怎么写足球世界排名国家最新
  • 苏州网站建设自助建站模板seo学途论坛网
  • 新手网站建设首页关键词排名
  • 你有网站 我做房东 只收佣金的网亚马逊跨境电商开店流程及费用
  • 做网站源码流程中国北京出啥大事了
  • 营销网站定制域名注册查询阿里云
  • 外贸自建站费用seo专员工资一般多少
  • 福州营销型网站建设价格推广普通话手抄报内容简短
  • 网站开发的开题报告引言长沙营销型网站建设
  • 网站制作公司备案企拓客app骗局
  • 武汉电子商务网站建设公司北京网站优化指导
  • 自助微信网站设计百度指数分析报告案例
  • 攸县网站开发南阳网站优化公司
  • 网站系统维护要多久墨子学院seo
  • 一个网站同时做竞价和seoseo的宗旨是什么
  • 建建建设网站国内最新新闻
  • 福田蒙派克4s店电话和地址seo专员是干嘛的
  • 网站动态logo怎么做seox
  • 北京建商城网站推广的软件
  • 做外贸推广自己网站地推接单平台
  • 云服务器做网站一般配置江小白网络营销案例
  • 网站开发使用的语言有哪些网站怎么做收录
  • 投资10元一小时赚500导师福州seo公司排名
  • 响应式网站有什么好处黄冈免费网站推广平台汇总
  • 企业网站 cms专业网站推广软件