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

网站维护总结百度上免费创建网站

网站维护总结,百度上免费创建网站,毕业设计做系统好还是网站好,宁波网页开发费用【1】引言 前序学习了使用numpy创建单通道的灰色图像,并对灰色图像的局部进行了颜色更改,相关链接为: python学opencv|读取图像(九)用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 之后又学习了使用numpy创…

【1】引言

前序学习了使用numpy创建单通道的灰色图像,并对灰色图像的局部进行了颜色更改,相关链接为:

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

之后又学习了使用numpy创建三通道的彩色图像,并对彩色图像按照不同通道进行了颜色更改,相关链接为:

python学opencv|读取图像(十)用numpy创建彩色图像_python新建一张caise的图片-CSDN博客

实际上还会有一些需求,只需要改变三通道彩色图像的局部颜色,也就是获得掩模效果,这就是今天文章的目标。

【2】可行性分析

根据上述文章,修改彩色图像的颜色是通过修改各个通道的BGR值实现的,修改灰度图像的颜色是通过修改各个像素点的BGR(本质上由于只有一个通道,所以本质上也是通过修改通道的BGR值实现 )实现。

import numpy as np  # 引入numpy模块
import cv2 as cv  # 引入cv模块canvas = np.ones((580, 580, 3), np.uint8)   # 绘制一个580*580大小的画布,3代表有3个通道,unit8为图像存储格式

那如果对彩色图像直接修改像素点的BGR,应该也会有颜色变化。

【3】代码测试

在上述分析的基础上,直接尝试修改像素点的BGR值。

首先是引入相关模块,绘制出画布,此时的画布为纯黑色:

import numpy as np  # 引入numpy模块
import cv2 as cv  # 引入cv模块canvas = np.ones((580, 580, 3), np.uint8)   # 绘制一个580*580大小的画布,3代表有3个通道,unit8为图像存储格式

然后在纯黑色的画布上,先把第50到300行,第20到280列改为纯白色像素,然后显示完整的画布:

canvas[50:300,20:280,:]=255 #第50到300行,第20到280列为纯白色像素cv.imshow('yanmo', canvas)  # 在屏幕展示掩模的效果
cv.imwrite('yanmo.png', canvas)  # 保存图像

之后把画布改为纯白色,相应的把区域第50到300行,第20到280列改为纯黑色像素,然后显示完整的画布:

canvas[:,:,:]=255 #画布改为纯白色像素
canvas[50:300,20:280,:]=0 #第50到300行,第20到280列为纯黑色像素
cv.imshow('yanmo1', canvas)  # 在屏幕展示掩模的效果cv.imwrite('yanmo1.png', canvas)  # 保存图像
cv.waitKey()  # 图像不会自动关闭
cv.destroyAllWindows()  # 释放所有窗口

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

图1 黑色画布白色掩模

图2 白色画布黑色掩模 

 由图1和 图2可见,三通道彩色图像,通过改像素点值的做法,也能实现修改图像区域颜色的目标,也就是实现掩模效果。

此时的完整代码为:

import numpy as np  # 引入numpy模块
import cv2 as cv  # 引入cv模块canvas = np.ones((580, 580, 3), np.uint8)   # 绘制一个580*580大小的画布,3代表有3个通道,unit8为图像存储格式canvas[50:300,20:280,:]=255 #第50到300行,第20到280列为纯白色像素cv.imshow('yanmo', canvas)  # 在屏幕展示掩模的效果
cv.imwrite('yanmo.png', canvas)  # 保存图像canvas[:,:,:]=255 #画布改为纯白色像素
canvas[50:300,20:280,:]=0 #第50到300行,第20到280列为纯黑色像素
cv.imshow('yanmo1', canvas)  # 在屏幕展示掩模的效果cv.imwrite('yanmo1.png', canvas)  # 保存图像
cv.waitKey()  # 图像不会自动关闭
cv.destroyAllWindows()  # 释放所有窗口

【4】细节说明

在彩色图像的掩模效果实现中,未单独设置BGR通道值。

尝试修改第二通道值,只需要增加代码:

canvas[:,:,:]=255 #画布改为纯白色像素
canvas[50:300,20:280,:]=0 #第50到300行,第20到280列为纯黑色像素
canvas[:,:,1]=0 #第二个通道值
cv.imshow('yanmo2', canvas)  # 在屏幕展示掩模的效果
cv.imwrite('yanmo2.png', canvas)  # 保存图像

此时新获得的图像为:

图3 白色画布黑色掩模 + 所有二通道值=0

图3出现了预料之外的结果,为探清缘由,在所有的掩模操作下增加代码,读取掩模区域中的像素点BGR值:

print("黑色画布白色掩模像素数为[100,100]位置处的BGR=", canvas[100, 100])  # 获取像素数为[100,100]位置处的BGR

这时候获得的BGR输出值为:

图4  BGR值

可见,由于画布颜色强制为白色,所有的BGR值本来是统一为255,但把第二通道的值改为0后,画布的BGR组成就变为[255 0 255],这时候画布就变成粉红色。

为证明上述分析,新增一段代码来做验证:

canvas[:,:,:]=255 #画布改为纯白色像素
canvas[:,:,1]=0 #第二个通道值
cv.imshow('yanmo3', canvas)  # 在屏幕展示掩模的效果
cv.imwrite('yanmo3.png', canvas)  # 保存图像
print("白色画布+所有二通道BGR=0像素数为[100,100]位置处的BGR=", canvas[100, 100])  # 获取像素数为[100,100]位置处的BGR
print("白色画布+所有二通道BGR=0像素数为[500,500]位置处的BGR=", canvas[100, 100])  # 获取像素数为[500,500]位置处的BGR

此时,先规划白色画布,然后直接强制第二通道值为0。

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

图5 白色画布+所有二通道值=0

此时输出的图像为粉红色,读取的像素点BGR为:

图6 白色画布+所有二通道值像素BGR值

由图6可见,各个像素点的BGR值都是[255 0 255],和图3所示的粉红色图像相应像素点的BGR值读取效果一致。

【5】总结

掌握了python+opencv三通道彩色图像掩模效果的实现技巧。

 

http://www.yidumall.com/news/45153.html

相关文章:

  • 九江做网站的公司哪里好营销课程培训
  • 网站图片加载顺序b2b关键词排名工具
  • 佛山小企业网站建设百度博客收录提交入口
  • wordpress怎么更改样式搜索引擎关键词排名优化
  • 对网站备案的认识品牌推广经典案例
  • 网站开源源码创建网站步骤
  • 电商网站wordpress免费代理上网网站
  • 苏州园区做网站公司银川网页设计公司
  • wordpress课程报名杭州seo
  • 做彩票网站被捉将受到什么惩罚护肤品软文推广
  • wap网站用什么服务器百度竞价seo排名
  • 建网站方案书站长工具端口
  • 网站建设课程设计总结市场调研表模板
  • 视频直播点播网站建设微信搜索seo优化
  • wordpress 伪静态html网站优化排名提升
  • 网站怎么做播放器厦门关键词优化seo
  • 东莞网站建设网站推广价钱seo推广优化外包公司
  • 怎么做网站里的悬浮窗口百度爱采购推广效果怎么样?
  • 购物网站建设免费个人网站申请
  • 网站标准尺寸石家庄疫情最新情况
  • 广东专业网站客服软件定制今天的新闻主要内容
  • 做系统和做网站哪个简单一些推广赚钱的软件
  • no.7极简wordpress博客主题深圳seo专家
  • 民权做网站哪家好企业网站制作要求
  • 九龙坡网站建设最好的小说网站排名
  • 香山网站建设广州网站优化多少钱
  • 一般做网站奉化网站关键词优化费用
  • 做的最好的相亲网站有哪些51网站统计
  • 廉洁 网站建设成都网站改版优化
  • 建应用网站搜索排名广告营销怎么做