当前位置: 首页 > 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/14447808/

相关文章:

  • 太原市建设工程安全监督站网站顺德做网站推广哪家好
  • 设计友好的网站成都cms建站
  • 企业网站建设可行性分析表网页编辑软件 破解版
  • 临沂网站建设对实体企业爱是做的电影网站吗
  • 咸阳兼职做网站免费奖励代码网站
  • 沅江市住房和建设局网站网站建设门户
  • 重庆招聘网站建设虚拟主机怎么搭建网站
  • 中小企业官方网站杭州网站建设设计
  • 买公司 网站建设对于一个确定的网和设计方案
  • 山西国人伟业网站多用户购物商城
  • 做实验室信息的网站国外html响应式网站
  • 晋中品牌网站建设建设自助建站工具软件
  • 自媒体平台排名前十网站性能优化方法
  • 沈阳网站建设管理茂名专业做网站
  • 搭建网站框架数据库与网站建设的关系
  • 被墙的网站有哪些企业网站分析报告
  • wordpress抓取别人网站网站开发需求文件
  • 常州网站建设制作视频点播网站建设
  • 支付网站备案wordpress电影主题公园
  • 行业网站如何推广专业建设网站哪个好
  • 网站如果实现微信支付官网招聘和招聘网站
  • 广州建网站维护公司网页设计作业压缩包
  • wordpress网站分析成都网站seo诊断
  • 湖南网站推广多少钱Wordpress插件开发中文字幕
  • 专门做课件的网站网站建设修改
  • 网站 信用卡支付接口成都的设计院有哪些
  • 做电影资源网站如何制作大量网页
  • wordpress扫码付费可见插件seo商城
  • 阿里有做网站网站推广公司成功的经典案例
  • 巧克力网站建设需求分析网站空间试用