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

宁波做简单网站的公司网站建设需求分析

宁波做简单网站的,公司网站建设需求分析,网站建设wesnowsat,网站开发所得税目录 简介 1.ROI区域 2.边界填充 3.数值计算 4.图像融合 简介 OpenCV是一个流行的开源计算机视觉库#xff0c;由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包#xff0c;可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。Ope…目录 简介 1.ROI区域 2.边界填充 3.数值计算 4.图像融合 简介 OpenCV是一个流行的开源计算机视觉库由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和计算机视觉应用。OpenCV主要使用C语言编写同时也支持Python、Java、C等语言。由于其开源和广泛使用的特点在计算机视觉和机器学习领域得到了广泛的应用。 1.ROI区域 截取我们感兴趣的区域在一张图像中我们可能只需要其中的一部分那我们如何截取这部分呢 在上一篇文章我们提到图片的本质可以由一组数组来表示 那么我们是否可以用切片来选择我们想要的区域呢 import cv2image cv2.imread(image/1.jpg) cat image[250:500, 250:500] cv2.imshow(IMG, cat) cv2.waitKey(0) cv2.destroyAllWindows()我们知道图像是一组三维的数据既然我们在平面上进行切片得到我们想要的区域那么我们是否可以对它的通道进行切分呢 import cv2 import numpy as npimage cv2.imread(image/1.jpg)# cat image[250:500, 250:500] # cv2.imshow(IMG, cat) b,g,r cv2.split(image) cat np.hstack((b,g,r)) cv2.imshow(IMG,cat)cv2.waitKey(0) cv2.destroyAllWindows()cv2.split()是OpenCV中的一个函数用于将多通道图像拆分成各个单通道图像。 为什么都是是灰色的呢因为提取完后的图片本质变成了单通道。 那么我想要是那种红色的图片要怎么做呢 第一种思路把三个通道分别提取出来然后创建一个类似图像数据的空数组最后把你想要的那个通道填充进去 第二种思路把另外两个通道的值重新复制为0只保留希望的颜色通道。 import cv2 import numpy as npimage cv2.imread(image/1.jpg)img image.copy() b, g, r cv2.split(img) arr np.zeros_like(image) arr[:, :, 2] r print(arr) cv2.imshow(IMG,arr) cv2.waitKey(0) cv2.destroyAllWindows() import cv2image cv2.imread(image/1.jpg)img image.copy() img[:,:,0] 0 img[:,:,1] 0cv2.imshow(IMG, img) cv2.waitKey(0) cv2.destroyAllWindows() 2.边界填充 在图像处理中常用的边界填充方法有以下几种 常数填充Constant Padding使用固定的像素值填充边界。可以通过 cv2.copyMakeBorder() 函数实现指定 borderTypecv2.BORDER_CONSTANT。 复制填充Replicate Padding将边界像素的值复制到图像边界。可以通过 cv2.copyMakeBorder() 函数实现指定 borderTypecv2.BORDER_REPLICATE。 反射填充Reflect Padding将边界像素值按照镜像方式填充。可以通过 cv2.copyMakeBorder() 函数实现指定 borderTypecv2.BORDER_REFLECT。 import cv2 import numpy as npimage cv2.imread(image/1.jpg) top_size, bottom_size, left_size, right_size (50, 50, 50, 50)replicate cv2.copyMakeBorder(image, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_REPLICATE) reflect cv2.copyMakeBorder(image, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT) constant cv2.copyMakeBorder(image, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_CONSTANT,value0) # print(image) # result np.hstack((constant,reflect, replicate))cv2.imshow(IMG, result) cv2.waitKey(0) cv2.destroyAllWindows() 当使用cv2.copyMakeBorder()函数进行边界填充时有几个参数需要理解和设置 src原始图像即要进行边界填充的图像。 top、bottom、left、right指定要在图像的上方、下方、左侧和右侧添加的边界大小。可以为每个边界分别设置不同的大小也可以将它们设置为相同的值。 borderType指定边界填充的方法。常用的参数选项包括 cv2.BORDER_CONSTANT常数填充使用固定的像素值填充边界。cv2.BORDER_REPLICATE复制填充将边界像素的值复制到图像边界。cv2.BORDER_REFLECT反射填充将边界像素值按照镜像方式填充。cv2.BORDER_WRAP复制边界填充将图像水平或垂直方向的边缘复制到对应边界。 value仅适用于borderTypecv2.BORDER_CONSTANT情况下指定要用于填充边界的常数值。可以是一个标量单个数值或一个包含与图像通道数匹配的数值的元组。 3.数值计算 第一种numpy层面的相加ps 如果数值超过255 会自动对255取余 import cv2 import numpy as npimage1 cv2.imread(image/car.jpg) image2 cv2.imread(image/circle.jpg)# img np.array(image1) image1_1 image1 10print(np.array(image1[:5,:,0])) print(np.array(image1_1[0:5,:,0]))第二种opencv提供的函数 cv2.add(image1,image2)    需要保证图片的尺寸一样 import cv2 import numpy as npimage1 cv2.imread(image/car.jpg) image2 cv2.imread(image/circle.jpg) if image1.shape ! image2.shape:image2 cv2.resize(image2, (image1.shape[1], image1.shape[0])) # img np.array(image1) image1_1 image1 10 result cv2.add(image1 ,image2) print(np.array(image1[:5, :, 0])) print(np.array(result[:5, :, 0])) 与numpy不同的是它的数值不会超过255 4.图像融合 cv2.addWeighted() 函数是 OpenCV 中用于图像融合的函数 函数的语法如下 dst cv2.addWeighted(src1, alpha, src2, beta, gamma)src1要融合的第一个输入图像。 alpha第一个输入图像的权重系数。它表示 src1 图像在融合结果中所占比例。 src2要融合的第二个输入图像。 beta第二个输入图像的权重系数。它表示 src2 图像在融合结果中所占比例。 gamma亮度调节参数。它是一个可选的参数用于进一步调整融合结果的亮度。 首先需要注意的一点是图像融合的两张图片的shape必须一致不然无法融合。 如下所示 import cv2image1 cv2.imread(image/1.jpg) image2 cv2.imread(image/lena.jpg)blended_image cv2.addWeighted(image1, 0.6, image2, 0.4, 0)cv2.imshow(IMG, blended_image) cv2.waitKey(0) cv2.destroyAllWindows() 所以在融合前我们需要将图片的shape设为一致 import cv2image1 cv2.imread(image/1.jpg) image2 cv2.imread(image/lena.jpg) # 调整两个图像的大小以保持一致image1 cv2.resize(image1, (500, 500)) image2 cv2.resize(image2, (500, 500))blended_image cv2.addWeighted(image1, 0.6, image2, 0.4, 0)cv2.imshow(IMG, blended_image) cv2.waitKey(0) cv2.destroyAllWindows()
http://www.hkea.cn/news/14452703/

相关文章:

  • 快递公司网站怎么做dede手机网站标签
  • 广告公司网站策划网站广东省备案系统
  • 徐州IT兼职网站开发怎么建设外贸网站
  • 网站备案会过期吗广州知名网络推广公司
  • 长沙网站seo费用企业网站asp源代码
  • 国内最大c2c网站上海网站推广多少钱
  • 厦门 网站建设公司电话建站吧网站建设
  • 山西做网站的公司域名解析怎么设置
  • 浙江建设职业技术学院塘栖校区网站从事网站开发
  • wordpress4.8主题南宁网站建设优化服务
  • 网站备案几年备案一次吗一站多通怎么做网站
  • lamp网站开发架构经验wordpress 移动 建站
  • 广东网站建设公司968网站模板制作与安装教程视频
  • 网页设计作业个人网站wordpress无编辑器
  • 网站文章结构变更怎么做301公司宣传推广方案
  • 网站建设 大学生创业网新浪 sae 安装 wordpress 如何上传模板?
  • 中搜网站提交微信小程序个人可以做吗
  • 深圳html5网站制作网站建设与管理是哪个软件
  • 手机微信的网站案例青海网站建设公司多少钱
  • 80端口被封怎么做网站wordpress首页打不开
  • 网站备案审核怎么做qq业务网站
  • 建设手机网站包括哪些费用建设厅网站技术负责人要求
  • 学校网站建设评审会议通知建设什么样的网站月入一万
  • 网站建设标准合同书网页游戏排行榜前十名超清画面
  • 门户网站建设工作领导小组四川省建设局网站
  • 网站建设服务 行业代码在线做图软件
  • 开封建网站呼叫中心网站建设
  • 网站建设logo图片汕头珠宝网站建设
  • 下载了网站模板怎么用西峰住房和城乡建设局网站
  • 公共网站怎地做wordpress is电影主题