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

运营企业网站传统企业营销型网站建设

运营企业网站,传统企业营销型网站建设,房产网签流程图,长沙专业网站制作设计【0】基础定义 按位与运算#xff1a;两个等长度二进制数上下对齐#xff0c;全1取1#xff0c;其余取0。 按位或运算#xff1a;两个等长度二进制数上下对齐#xff0c;有1取1#xff0c;其余取0。 按位异或运算#xff1a; 两个等长度二进制数上下对齐#xff0c;相…【0】基础定义 按位与运算两个等长度二进制数上下对齐全1取1其余取0。 按位或运算两个等长度二进制数上下对齐有1取1其余取0。 按位异或运算 两个等长度二进制数上下对齐相同取0其余取1。 按位取反运算一个二进制数0变11变0。 【2】引言 在前序学习进程中调用cv2.bitwise()系列函数实现了图像的按位与计算相关文章链接包括且不限于 python学opencv|读取图像四十三使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十五增加掩模使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 python学opencv|读取图像四十六使用cv2.bitwise_or()函数实现图像按位或运算-CSDN博客 python学opencv|读取图像四十七使用cv2.bitwise_not()函数实现图像按位取反运算-CSDN博客 python学opencv|读取图像四十八使用cv2.bitwise_xor()函数实现图像按位异或运算-CSDN博客 图像的按位与计算是通过对各个像素点上的BGR值进行操作先把十进制数转化为二进制数再进行按位计算然后再转回十进制数输出。 由于前序文章的重点是对比按位计算前后图像的色彩变化除按位与计算外没有详细深究二进制按位计算过程。因此本文以之前按位与计算为基础对此展开专题探索。 按位与计算的原理探索文章链接为 python学opencv|读取图像四十三使用cv2.bitwise_and()函数实现图像按位与运算-CSDN博客 【3】项目可行性分析 以输入的外部图像为基础调用cv2.bitwise()系列函数让图像进行按位计算后读取相关点的BGR值使用np.bitwise()系列函数对cv2.bitwise()系列函数按位计算进行原理呈现。 【4】代码测试 首先引入相关模块和图像 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(第二个图像像素大小为,image.shape) image[50:350, :, :] 180 # 行掩模 image[:,120:200,: ] 255 # 列掩模 image[:, :, 2] 120 # 第二个通道值 然后要引入一个8位单通道的二维矩阵定义掩模 #定义掩模矩阵 mask np.zeros((gray_src.shape), np.uint8) # 定义一个竖直和水平像素与初始图像等大的全0矩阵 mask[280:350, :] 155 # 水平区域 mask[:,150:350] 100 # 竖直区域 之后就调用cv2.bitwise()系列函数执行按位计算 #执行位运算 #按位与运算 img_andcv.bitwise_and(src,image) #按位与运算 img_and_maskcv.bitwise_and(src,image,maskmask) #按位与运算 #按位或运算 img_orcv.bitwise_or(src,image) #按位或运算 img_or_maskcv.bitwise_or(src,image,maskmask) #按位或运算 #按位异或运算 img_xorcv.bitwise_xor(src,image) #按位异或运算 img_xor_maskcv.bitwise_xor(src,image,maskmask) #按位异或计算 #按位取反运算 img_notcv.bitwise_not(src) #按位取反运算 img_not_maskcv.bitwise_not(src,maskmask) #按位异或计算 按位计算执行以后图像的BGR值发生变化这时候使用np.bitwise()系列函数图像的BGR值进行按位计算以对cv2.bitwise()系列函数按位计算进行原理呈现 #显示BGR值 print(初始图像dst像素数为[300,180]位置处的BGR, dst[300,180],a) # 获取像素数为[100,100]位置处的BGR print(第二个图像image像素数为[300,180]位置处的BGR, image[300,180],b) # 获取像素数为[100,100]位置处的BGR print(img_and像素数为[300,180]位置处的BGR, img_and[300,180],c) # 获取像素数为[100,100]位置处的BGR print(img_and_mask像素数为[300,180]位置处的BGR, img_and_mask[300,180]) # 获取像素数为[100,100]位置处的BGR print(img_or像素数为[300,180]位置处的BGR, img_or[300,180],d) # 获取像素数为[100,100]位置处的BGR print(img_or_mask像素数为[300,180]位置处的BGR, img_or_mask[300,180]) # 获取像素数为[100,100]位置处的BGR print(img_xor像素数为[300,180]位置处的BGR, img_xor[300,180],e) # 获取像素数为[100,100]位置处的BGR print(img_xor_mask像素数为[300,180]位置处的BGR, img_xor_mask[300,180]) # 获取像素数为[100,100]位置处的BGR print(img_not像素数为[300,180]位置处的BGR, img_not[300,180],f) # 获取像素数为[100,100]位置处的BGR print(img_not_mask像素数为[300,180]位置处的BGR, img_not_mask[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) #定义矩阵-np.bitwise_and dnp.zeros((1,3),np.uint8) #定义矩阵-np.bitwise_or enp.zeros((1,3),np.uint8) #定义矩阵-np.bitwise_xor fnp.zeros((1,3),np.uint8) #定义矩阵-np.bitwise_not# 二进制按位与计算 for i in range(3): # 计数print(a, [0,, i, ], a[i], 的二进制转化值,bin(a[i])) # 输出二进制转化值print(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], 的二进制转化值, bin(c[0,i])) # 输出二进制转化值d[0, i] np.bitwise_or(a[i], b[i]) # 赋值按位或计算值print(d, [0,, i, ], d[0,i], 的二进制转化值, bin(d[0,i])) # 输出二进制转化值e[0, i] np.bitwise_xor(a[i], b[i]) # 赋值按位或计算值print(e, [0,, i, ], e[0, i], 的二进制转化值, bin(e[0, i])) # 输出二进制转化值f[0, i] np.bitwise_not(a[i]) # 赋值按位或计算值print(f, [0,, i, ], e[0, i], 的二进制转化值, bin(f[0, i])) # 输出二进制转化值print(c, [0, i], 是a[0,, i, ]和b[0, i, ]按位与的值np.bitwise_and(a[0,,i, ],b[0,,i,]), c[0, i]) # 输出按位与计算值print(d, [0, i], 是a[0,, i, ]和b[0, i, ]按位或的值np.bitwise_or(a[0,,i, ],b[0,,i,]), d[0, i]) # 输出按位或计算值print(e, [0, i], 是a[0,, i, ]和b[0, i, ]按位异或的值np.bitwise_xor(a[0,,i, ],b[0,,i,]), e[0, i]) # 输出按位异或计算值print(f, [0, i], 是a[0,, i, ]按位取反的值np.bitwise_not(a[0,,i, ]), f[0, i]) # 输出按位取反计算值# 输出矩阵结果 print(a, a) # 输出矩阵 print(b, b) # 输出矩阵 print(c, c) # 输出矩阵 print(d, d) # 输出矩阵 print(e, e) # 输出矩阵 print(f, f) # 输出矩阵 由于主要关注数值变化因此未直接显示相关图像其余代码可作为辅助学习使用 #合并图像 himg_and_andmask np.hstack((img_and,img_and_mask)) himg_or_ormask np.hstack((img_or,img_or_mask)) himg_xor_xormask np.hstack((img_xor,img_xor_mask)) himg_not_notmask np.hstack((img_not,img_not_mask))# 显示和保存定义的图像 #cv.imshow(dst, dst) # 显示图像 #cv.imshow(image, image) # 显示图像 #cv.imshow(mask, mask) # 显示图像 #cv.imshow(himg_and_andmask, himg_and_andmask) # 显示图像 #cv.imshow(himg_or_ormask, himg_or_ormask) # 显示图像 #cv.imshow(himg_xor_xormask, himg_xor_xormask) # 显示图像 #cv.imshow(himg_not_notmask, himg_not_notmask) # 显示图像cv.waitKey() # 图像不关闭 cv.destroyAllWindows() # 释放所有窗口 代码运行使用的相关图像有 ​ 图1  初始图像srcx.png ​ 图2  第二张图像image.png  ​ 图3 掩模mask.png 代码运行后获得的相关文字输出为 ​ 图4 图像基本属性 ​ 图5 特定像素点BGR值读取 读取到特定像素点[300,180]处的BGR之后首先需要关注 初始图像在此处的BGR值为[132  80 121] 第二张图像在此处的BGR值为[255 255 120] 其余位置的数据其实是通过cv2.bitwise()系列函数按位计算之后获得的。为追溯这个计算过程继续获得了输出文字 图6 特定像素点BGR值-按位计算第一个点 需要注意的是 e[0,0]和f[0,0]在0b后面只有7位数字这是因为0b01111011在0b之后的0确实没有用处只有占位的作用所以python就直接省略了。 图7 特定像素点BGR值-按位计算第二个点 a[0,1]和c[0,1]在0b后面只有7位数字也是因为在0b之后的0确实没有用处只有占位的作用所以python就直接省略了。 图8 特定像素点BGR值-按位计算第二个点  e[0,2]是异或计算的结果两个二进制数上下对齐相同取0其余取1只有最右侧的位置不同其余均相同所以最后的结果是1。 f[0,2]是按位取反的结果虽然a[0,2]只有7位但首位的0取反之后就是1所以f[0,2]有8位数字。 此时的完整代码为 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(第二个图像像素大小为,image.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 # 竖直区域#执行位运算 #按位与运算 img_andcv.bitwise_and(src,image) #按位与运算 img_and_maskcv.bitwise_and(src,image,maskmask) #按位与运算 #按位或运算 img_orcv.bitwise_or(src,image) #按位或运算 img_or_maskcv.bitwise_or(src,image,maskmask) #按位或运算 #按位异或运算 img_xorcv.bitwise_xor(src,image) #按位异或运算 img_xor_maskcv.bitwise_xor(src,image,maskmask) #按位异或计算 #按位取反运算 img_notcv.bitwise_not(src) #按位取反运算 img_not_maskcv.bitwise_not(src,maskmask) #按位异或计算#显示BGR值 print(初始图像dst像素数为[300,180]位置处的BGR, dst[300,180],a) # 获取像素数为[100,100]位置处的BGR print(第二个图像image像素数为[300,180]位置处的BGR, image[300,180],b) # 获取像素数为[100,100]位置处的BGR print(img_and像素数为[300,180]位置处的BGR, img_and[300,180],c) # 获取像素数为[100,100]位置处的BGR print(img_and_mask像素数为[300,180]位置处的BGR, img_and_mask[300,180]) # 获取像素数为[100,100]位置处的BGR print(img_or像素数为[300,180]位置处的BGR, img_or[300,180],d) # 获取像素数为[100,100]位置处的BGR print(img_or_mask像素数为[300,180]位置处的BGR, img_or_mask[300,180]) # 获取像素数为[100,100]位置处的BGR print(img_xor像素数为[300,180]位置处的BGR, img_xor[300,180],e) # 获取像素数为[100,100]位置处的BGR print(img_xor_mask像素数为[300,180]位置处的BGR, img_xor_mask[300,180]) # 获取像素数为[100,100]位置处的BGR print(img_not像素数为[300,180]位置处的BGR, img_not[300,180],f) # 获取像素数为[100,100]位置处的BGR print(img_not_mask像素数为[300,180]位置处的BGR, img_not_mask[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) #定义矩阵-np.bitwise_and dnp.zeros((1,3),np.uint8) #定义矩阵-np.bitwise_or enp.zeros((1,3),np.uint8) #定义矩阵-np.bitwise_xor fnp.zeros((1,3),np.uint8) #定义矩阵-np.bitwise_not# 二进制按位与计算 for i in range(3): # 计数print(a, [0,, i, ], a[i], 的二进制转化值,bin(a[i])) # 输出二进制转化值print(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], 的二进制转化值, bin(c[0,i])) # 输出二进制转化值d[0, i] np.bitwise_or(a[i], b[i]) # 赋值按位或计算值print(d, [0,, i, ], d[0,i], 的二进制转化值, bin(d[0,i])) # 输出二进制转化值e[0, i] np.bitwise_xor(a[i], b[i]) # 赋值按位或计算值print(e, [0,, i, ], e[0, i], 的二进制转化值, bin(e[0, i])) # 输出二进制转化值f[0, i] np.bitwise_not(a[i]) # 赋值按位或计算值print(f, [0,, i, ], e[0, i], 的二进制转化值, bin(f[0, i])) # 输出二进制转化值print(c, [0, i], 是a[0,, i, ]和b[0, i, ]按位与的值np.bitwise_and(a[0,,i, ],b[0,,i,]), c[0, i]) # 输出按位与计算值print(d, [0, i], 是a[0,, i, ]和b[0, i, ]按位或的值np.bitwise_or(a[0,,i, ],b[0,,i,]), d[0, i]) # 输出按位或计算值print(e, [0, i], 是a[0,, i, ]和b[0, i, ]按位异或的值np.bitwise_xor(a[0,,i, ],b[0,,i,]), e[0, i]) # 输出按位异或计算值print(f, [0, i], 是a[0,, i, ]按位取反的值np.bitwise_not(a[0,,i, ]), f[0, i]) # 输出按位取反计算值# 输出矩阵结果 print(a, a) # 输出矩阵 print(b, b) # 输出矩阵 print(c, c) # 输出矩阵 print(d, d) # 输出矩阵 print(e, e) # 输出矩阵 print(f, f) # 输出矩阵#合并图像 himg_and_andmask np.hstack((img_and,img_and_mask)) himg_or_ormask np.hstack((img_or,img_or_mask)) himg_xor_xormask np.hstack((img_xor,img_xor_mask)) himg_not_notmask np.hstack((img_not,img_not_mask))# 显示和保存定义的图像 #cv.imshow(dst, dst) # 显示图像 #cv.imshow(image, image) # 显示图像 #cv.imshow(mask, mask) # 显示图像 #cv.imshow(himg_and_andmask, himg_and_andmask) # 显示图像 #cv.imshow(himg_or_ormask, himg_or_ormask) # 显示图像 #cv.imshow(himg_xor_xormask, himg_xor_xormask) # 显示图像 #cv.imshow(himg_not_notmask, himg_not_notmask) # 显示图像cv.waitKey() # 图像不关闭 cv.destroyAllWindows() # 释放所有窗口 综上所述 a.图像的按位与计算是通过对各个像素点上的BGR值进行操作先把十进制数转化为二进制数再进行按位计算然后再转回十进制数输出。 b.使用np.bitwise()系列函数对cv2.bitwise()系列函数按位计算进行原理呈现中继续发现python在输出二进制的过程中会省略0b之后紧跟的0。 【5】总结 专题探索了cv2.bitwise()系列函数按位计算时的BGR值二进制转化和按位计算过程。
http://www.hkea.cn/news/14501463/

相关文章:

  • 720全景网站怎么做游戏开发物语攻略
  • 瑞丽市建设局网站怎么查看网站根目录
  • 公司建网站网站规划书的内容有哪些
  • 山西seo推广站长工具seo排名查询
  • 洛阳做网站公司电话济南公司快速建站
  • 建行网站会员有什么用网站 成本
  • 长沙法律咨询网站设计开发网页制作的收获
  • 网站开发公司 重庆大连关键词优化服务
  • 注册做网站的营业执照东莞网站免费制作
  • 珠海移动网站定制ftontpage如何做网站
  • 网站设计制作什么时候好响应式网站模版
  • 哪个网站服务器比较好搜索引擎广告的优缺点
  • 仿58网站源码微信营销案例ppt
  • vs2015 网站开发精品课程网站建设论文
  • 郑州网站建设郑州网络推广唐山移动互联网开发
  • 网站转入备案wordpress 字体不好看
  • 个人做网站名称可以随意更改吗施工企业安全生产考核评定应分为
  • 怎么在虚拟机中做网站普像工业设计网站
  • 新闻发布网站模板长沙网络公司排行榜
  • 西安高端网站制作公司哪家好广东的网站备案
  • 网站的关键词库wordpress禁止前台登录
  • 网站模板大全 优帮云网站开发学什么数据库
  • 检测网站速度什么公司需要建立网站吗
  • 信息无障碍 网站建设望野王绩
  • 求和萝莉做的网站什么网站比谷歌还好
  • 网站备案要钱么安徽省建筑人员信息网
  • 怎么做免费的网站链接医药网站设计
  • 网站建设与管理 需求分析桥头网站建设
  • 铺面怎样做放上网站武威 网站开发
  • 知名网站制作公司没有网站百度推广