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

跟我一起做网站嘉兴做网站哪家好

跟我一起做网站,嘉兴做网站哪家好,网站怎么提升实用性,公司网站哪家做的好【0】基础定义 按位与运算#xff1a;全1取1#xff0c;其余取0。按位或运算#xff1a;全0取0#xff0c;其余取1。 【1】引言 前序学习进程中#xff0c;已经对图像按位与计算进行了详细探究#xff0c;相关文章链接如下#xff1a; python学opencv|读取图像…【0】基础定义 按位与运算全1取1其余取0。按位或运算全0取0其余取1。 【1】引言 前序学习进程中已经对图像按位与计算进行了详细探究相关文章链接如下 python学opencv|读取图像四十三使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十四原理探究bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十五增加掩模使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 图像的按位与运算是将各个像素点的BGR值先由十进制转二进制在二进制环境下进行按位与运算后再转回十进制的过程。 当三个图像进行按位与运算时先前两个图像按位与运算再将按位与运算结果和第三个图像执行按位与运算。 在此基础上本次文章进一步探究图像的按位或运算。 在按位与运算的学习基础上不妨大胆猜测图像的按位或运算工作原理将各个像素点的BGR值先由十进制转二进制在二进制环境下进行按位或运算后再转回十进制。 【2】官网教程 点击下方链接直达按位或运算的官网教程 OpenCV: Operations on arrays 官网对按位或运算函数cv2.bitwise_or()的解释为 图1 在这里对应的参数意义为 具体的参数意义为 void cv::bitwise_or     (     InputArray     src1,       #第一个图像             InputArray     src2,                                        #第二个图像             OutputArray     dst,                                       #输出图像             InputArray     mask noArray() )                  #掩模单通道数据可选参数 按位或运算要求数据的大小一致对于三通道图像会逐个通道进行按位或运算。 按位或运算的mask掩模参数也要求是单通道的二维矩阵。 【3】代码测试 由于前述对bitwise_and()函数的探究已经足够详细所以可以直接借用先前代码的大部分内容稍加修改就能获得bitwise_or()函数的完整代码 import cv2 as cv # 引入CV模块 import numpy as np #引入numpy模块# 读取图片-直接转化灰度图 src cv.imread(srcx.png) #读取图像 dstsrc #输出图像 gray_srccv.cvtColor(src,cv.COLOR_BGR2GRAY) #转化为灰度图 dstggray_src #输出图像 print(初始图像像素大小为,src.shape) print(初始图像灰度图像素大小为,gray_src.shape)# 定义第二个图像 image np.zeros(src.shape, np.uint8) # 定义一个竖直和水平像素与初始图像等大的全0矩阵 print(初始图像像素大小为,src.shape) image[50:350, :, :] 180 # 行掩模 image[:,120:200,: ] 255 # 列掩模 image[:, :, 1] 180 # 第二个通道值#定义掩模矩阵 mask np.zeros((gray_src.shape), np.uint8) # 定义一个竖直和水平像素与初始图像等大的全0矩阵 mask[280:350, :] 155 # 水平区域 mask[:,150:350] 100 # 竖直区域#按位与运算 imgcv.bitwise_or(src,image) #与运算 img2cv.bitwise_or(src,image,maskmask) #与运算#显示BGR值 print(dst像素数为[300,180]位置处的BGR, dst[300,180]) # 获取像素数为[100,100]位置处的BGR print(image像素数为[300,180]位置处的BGR, image[300,180]) # 获取像素数为[100,100]位置处的BGR print(img像素数为[300,180]位置处的BGR, img[300,180]) # 获取像素数为[100,100]位置处的BGR print(img2像素数为[300,180]位置处的BGR, img2[300,180]) # 获取像素数为[100,100]位置处的BGRanp.zeros((1,3),np.uint8) #定义矩阵 adst[300,180] #将像素点BGR直接赋值给矩阵 bnp.zeros((1,3),np.uint8) #定义矩阵 bimage[300,180] #将像素点BGR直接赋值给矩阵 cnp.zeros((1,3),np.uint8) #定义矩阵 dnp.zeros((1,3),np.uint8) #定义矩阵 dimage[300,180] #将像素点BGR直接赋值给矩阵 enp.zeros((1,3),np.uint8) #定义矩阵#二进制按位与计算e for i in range(3): #计数print(a,[0,,i,],a[i],的二进制转化值, bin(a[i]), b,[0,,i,], b[i],的二进制转化值,bin(b[i])) #输出二进制转化值c[0,i]np.bitwise_and(a[i],b[i]) #赋值按位与计算值print(c,[0,i],,c[0,i]) #输出按位与计算值print(c,[0,,i,],[0,i],的二进制转化值, bin(c[0,i]), d,[0,,i,], d[i],的二进制转化值,bin(d[i])) #输出二进制转化值e[0,i]np.bitwise_and(c[0,i],d[i]) #赋值按位与计算值print(e,[0,i],,e[0,i]) #输出按位与计算值#输出矩阵结果 print(a,a) #输出矩阵 print(b,b) #输出矩阵 print(c,c) #输出矩阵 print(d,d) #输出矩阵 print(e,e) #输出矩阵#合并图像 himgnp.hstack((src,img)) himg2np.hstack((src,img2)) himg3np.hstack((img,img2)) # 显示和保存定义的图像 cv.imshow(dst, dst) # 显示图像 cv.imshow(or-img, img) # 显示图像 cv.imwrite(or-img.png, img) # 保存图像 cv.imshow(or-img2, img2) # 显示图像 cv.imwrite(or-img2.png, img2) # 保存图像 cv.imshow(or-image, image) # 显示图像 cv.imwrite(or-image.png, image) # 保存图像 cv.imshow(or-mask, mask) # 显示图像 cv.imwrite(or-mask.png, mask) # 保存图像 cv.imshow(or-himg, himg) # 显示图像 cv.imwrite(or-himg.png, himg) # 保存图像 cv.imshow(or-himg2, himg2) # 显示图像 cv.imwrite(or-himg2.png, himg2) # 保存图像 cv.imshow(or-himg3, himg3) # 显示图像 cv.imwrite(or-himg3.png, himg3) # 保存图像 cv.waitKey() # 图像不关闭 cv.destroyAllWindows() # 释放所有窗口 代码里给出了两种按位或运算的执行过程第一个不带掩模参数第二个带有掩模参数 #按位与运算 imgcv.bitwise_or(src,image) #与运算 img2cv.bitwise_or(src,image,maskmask) #与运算 另外将特定像素点的BGR值按位与运算改为了按位或运算 #二进制按位与计算e for i in range(3): #计数print(a,[0,,i,],a[i],的二进制转化值, bin(a[i]), b,[0,,i,], b[i],的二进制转化值,bin(b[i])) #输出二进制转化值c[0,i]np.bitwise_or(a[i],b[i]) #赋值按位与计算值print(c,[0,i],,c[0,i]) #输出按位与计算值print(c,[0,,i,],[0,i],的二进制转化值, bin(c[0,i]), d,[0,,i,], d[i],的二进制转化值,bin(d[i])) #输出二进制转化值e[0,i]np.bitwise_or(c[0,i],d[i]) #赋值按位与计算值print(e,[0,i],,e[0,i]) #输出按位与计算值 代码运行相关的图像为 图2 初始图像srcx.png 图3 带掩模的第二张图像or-image.png 图3 掩模矩阵对应的第三张图像or-mask.png 图4 不带掩模矩阵的按位或运算效果or-img.png  图5 带掩模矩阵的按位或运算效果or-img2.png   图6 不带掩模矩阵VS带掩模矩阵的按位或运算效果or-himg3.png 由图2至图6可见随着按位或运算函数cv2.bitwise_or()的功能执行图像的色彩出现了明显变化。为增强对比效果继续输出图像 图7 初始图像和不带掩模矩阵的按位或运算效果or-himg.png  图8 初始图像和不带掩模矩阵的按位或运算效果or-himg2.png  综合图7和图8按位或运算函数cv2.bitwise_or()执行后只在带有掩模的区域出现了图像。为此查看特定像素点的BGR值 图9  特定像素点BGR按位或运算验证 由图9读取的数据可知使用cv2.bitwise_or()函数执行图像按位或计算时当面向两张图像时各个像素点的BGR值都是按照十进制转二进制、二进制按位或计算然后再转回十进制的顺序进行。当面向三张图像时先对前两张图像执行按位或计算此时会获得一张中间图像然后中间图像和第三个图像再次执行按位或计算。 图10 cv2.bitwise_or()函数工作流程 【3】总结 掌握了pythonopencv实现使用cv2.bitwise_or()函数实现图像带掩模矩阵按位或计算的技巧。
http://www.w-s-a.com/news/186088/

相关文章:

  • 上海知名建站公司山东住房和建设庭网站
  • 深圳市城乡建设部网站首页平台设计方案怎么做
  • 深圳美食教学网站制作wordpress列表图显示标题
  • 怎么做网址导航网站沈阳高端做网站建设
  • 棋牌网站开发需要多少钱整网站代码 带数据 免费 下载
  • 网站建设 sql 模版猎头用什么网站做单
  • 河北保定建设工程信息网站wordpress 远程缓存
  • 手机网站开发之列表开发win7网站开发教程
  • 楚雄市住房和城乡建设局网站廊坊企业网站建设
  • 东莞规划局官方网站wordpress添加文章页不显示图片
  • 做企业网站要哪些人员百度商城网站建设
  • c语言软件开和网站开发区别多产品的网站怎么做seo
  • 收益网站制作移动互联网应用的使用情况表格
  • 专业的手机网站建设公司哪家好同城信息网站建设
  • 参与做网站的收获国外网站服务器建设
  • 西宁网站建设报价cu君博规范网站kv如何做
  • 毕业室内设计代做网站广东建设监理协会网站个人账号
  • 百度推广点击收费标准自己如何做网站优化
  • 安徽省建设监理网站广州澄网站建设公司
  • 做简历用什么网站俄罗斯搜索引擎浏览器官网入口
  • dw里响应式网站怎么做制作网站需要多少时间
  • 网站如何做双链路示范学校建设专题网站
  • 网站开发北京影视网站seo描述
  • 高端网站定制建设公司哪家好企业网络推广技巧
  • 建设公司网站的内容建筑设计图片
  • 用ps怎么做网站的效果图互联网营销师报名入口官网
  • 网站的后端怎么开发网站 白名单
  • 济宁中小企业网站建设wordpress爆破工具
  • 零基础网站建设视频商城系统平台有哪些
  • 那个网站做百科好过wordpress删除