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

美化网站代码基层消防力量建设

美化网站代码,基层消防力量建设,外贸网站哪个好,宁波建设网站公众号关注【0】基础定义 按位与运算#xff1a;两个等长度二进制数上下对齐#xff0c;全1取1#xff0c;其余取0。 按位或运算#xff1a;两个等长度二进制数上下对齐#xff0c;有1取1#xff0c;其余取0。 按位取反运算#xff1a;一个二进制数#xff0c;0变1,1变0。 按…【0】基础定义 按位与运算两个等长度二进制数上下对齐全1取1其余取0。 按位或运算两个等长度二进制数上下对齐有1取1其余取0。 按位取反运算一个二进制数0变1,1变0。 按位异或运算 两个等长度二进制数上下对齐相同取0其余取1。 【1】引言 前序已经学习了cv2.bitwise_and()函数、cv2.bitwise_or()函数和cv2.bitwise_not()函数进行图像按位与计算、按位或运算和按位取反运算相关文章链接为 python学opencv|读取图像四十三使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十四原理探究bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十五增加掩模使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客python学opencv|读取图像四十六使用cv2.bitwise_or()函数实现图像按位或运算-CSDN博客python学opencv|读取图像四十五增加掩模使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十七使用cv2.bitwise_not()函数实现图像按位取反运算-CSDN博客 在此基础上我们再次回到两个图像的操作使用的函数cv2.bitwise_xor()实现图像在各个像素点BGR值的异或。 【2】官网教程 【2.1】cv2.bitwise_xor()函数 点击下方链接直达函数cv2.bitwise_xor()的官网教程 OpenCV: Operations on arrays 官网对函数的说明页面为 图1  cv2.bitwise_xor()的官网教程 在cv2.bitwise_xor()的官网教程可以看到函数的参数说明为 void cv::bitwise_xor     (     InputArray     src1,   #输入图像1         InputArray     src2,                                     #输入图像2         OutputArray     dst,                                    #输出图像         InputArray     mask noArray() )               #掩模矩阵单通道二维矩阵 和之前的几个位操作函数一样在函数cv2.bitwise_xor()中调用掩模效果对应的掩模矩阵为8位单通道二维矩阵 。 【2.2】np.bitwise_xor()函数 点击下方链接直达函数np.bitwise_xor()的官网教程 numpy.bitwise_xor — NumPy v2.2 Manual 代码先后使用cv2.bitwise_xor()函数和np.bitwise_xor()函数来展示图像按位异或操作的基本原理。 【3】代码测试 参考前述学习进程中调用的代码按照输入图像-按位异或-输出图像的顺序规划代码。 首先引入相关模块和图像 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[:, :, 2] 120 # 第二个通道值#定义掩模矩阵 mask np.zeros((gray_src.shape), np.uint8) # 定义一个竖直和水平像素与初始图像等大的全0矩阵 mask[280:350, :] 155 # 水平区域 mask[:,150:350] 100 # 竖直区域 然后执行按位异或计算 #按位异或运算 imgcv.bitwise_xor(src,image) #异或运算 img2cv.bitwise_xor(src,image,maskmask) #异或运算 之后读取特定点BGR值进行按位异或计算验证 #显示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) #定义矩阵#二进制按位异或计算 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_xor(a[i],b[i]) #赋值按位异或计算值print(c,[0,i],是a[0,,i,]和b[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_xor(c[0,i],d[i]) #赋值按位与计算值print(e,[0,i],是c[0,,i,]和d[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(xor-n-mask, img) # 显示图像 cv.imwrite(xornmask.png, img) # 保存图像 cv.imshow(xor-w-mask, img2) # 显示图像 cv.imwrite(xor-w-mask.png, img2) # 保存图像 cv.imshow(xor-image, image) # 显示图像 cv.imwrite(xor-image.png, image) # 保存图像 cv.imshow(xor-mask, mask) # 显示图像 cv.imwrite(xor-mask.png, mask) # 保存图像 cv.imshow(ini-xor-n-mask, himg) # 显示图像 cv.imwrite(ini-xor-n-mask.png, himg) # 保存图像 cv.imshow(ini-xor-w-mask, himg2) # 显示图像 cv.imwrite(ini-xor-w-mask.png, himg2) # 保存图像 cv.imshow(xor-n-w, himg3) # 显示图像 cv.imwrite(xor-n-w.png, himg3) # 保存图像 cv.waitKey() # 图像不关闭 cv.destroyAllWindows() # 释放所有窗口 代码运行使用的图像有 图2  初始图像srcx.png 图3 生成的带掩模的第二张图像xor-image.png 图4  掩模矩阵对应图像or-mask.png 图5 图像按位异或效果-不带掩模矩阵xor-n-mask.png 图6 初始图像和图像按位异或效果-不带掩模矩阵ini-xor-n-mask.png 图7 图像按位异或效果-带掩模矩阵xor-w-mask.png 图8 初始图像和图像按位异或效果-带掩模矩阵ini-xor-w-mask.png 图9 图像按位异或效果-不带和带掩模矩阵xor-n-w-mask.png 由图2至图9可知对图像按位异或操作后图像的颜色发生了明显变化添加掩模矩阵后只在掩模矩阵显示出图像异或操作的图像效果。 然后读取了特定像素点的BGR值 图10 特定像素点BGR值异或运算验证 图10中对第一个图像dst和第二个图像image在特定像素点[300,180]读取了BGR值矩阵a和b并调用np.bitwise_xor()函数对这两个值进行了按位异或运算矩阵c。 之后又设置了反异或运算此时的按位异或图像为上一步获得的按位异或矩阵和第二个图像image。这两个图像矩阵c和d在特定像素点[300,180]的BGR值执行了按位异或操作。 图11 反异或运算代码设置 图10中矩阵形式的BGR值读取效果表明反按位异或操作执行后获得的矩阵值矩阵e和第一个图像的特定像素点取值相等。 综上所述基于所有运算结果使用cv2.bitwise_xor()函数执行图像按位异或计算时各个像素点的BGR值都是按照十进制转二进制、二进制按位异或计算然后再转回十进制的顺序进行。 图12  cv2.bitwise_xor()函数实现图像带掩模矩阵按位异或计算 【4】细节说明 由于掩模矩阵是单通道二维矩阵所以掩模本身只会在黑白色之间变化。 【5】总结 掌握了pythonopencv实现使用cv2.bitwise_xor()函数实现图像带掩模矩阵按位异或计算的技巧。
http://www.w-s-a.com/news/430572/

相关文章:

  • 网站推广方式校园网站怎么建
  • 长沙seo网站排名怎么在百度发帖
  • 织梦贷款网站模板做印章网站
  • 彭州做网站上海百度网络推广
  • 广州网站搭建快速提升网站排名荧光字网站
  • 15年做那些网站能致富做seo是什么意思
  • 各电商网站的特点网站制作2007
  • 用html做一号店网站怎么做公众号注册平台官网
  • 做盈利网站怎么备案vs做网站如何调试
  • 嘉兴做营销型网站廊坊做网站外包
  • 双语网站模板常州做网站的公司
  • 广州市车管所网站建设全国做网站公司前十名
  • 太原手手工网站建设公司视频直播服务
  • 雷达图 做图网站wordpress首页怎么美化
  • 四川做网站设计公司价格vip解析网站怎么做的
  • 网站建设流程域名申请做化工的 有那些网站
  • 软件开发设计流程图seo搜索引擎官网
  • 外国小孩和大人做网站东富龙科技股份有限公司
  • 上线倒计时单页网站模板做网站的资金来源
  • 泸州市建设厅网站中小企业网络需求分析
  • asp网站版权做网页价格
  • 长春网站建设路关键词优化公司哪家好
  • 河南省建设银行网站年报天津设计师网站
  • 沙洋网站定制如果自己建立网站
  • 凡科网站怎么做建站关键字搜索网站怎么做
  • 小说网站建站程序企业邮箱地址
  • 福州市住房和城乡建设网站网站开发方案论文
  • 在线教育网站开发网站推广常用方法包括
  • 东莞高端品牌网站建设软件开发模型及特点
  • 个人网站的设计与实现的主要内容网站开发公司架构