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

安陆市建设局网站浙江均泰建设有限公司网站

安陆市建设局网站,浙江均泰建设有限公司网站,什么主题和风格的网站好,企业网站建设排名官网这一部分主要讲解如何初步地创建一个图像,以及彩色图像我们的一些基本处理方法 一、创建一个灰度图像 1-1、zeros()函数 [NumPy库] 要用到这一个函数,首先我们需要调用我们的NumPy库,这一个函数的作用是可以帮助我们生成一个元素值都是0的二…

        这一部分主要讲解如何初步地创建一个图像,以及彩色图像我们的一些基本处理方法

一、创建一个灰度图像

1-1、zeros()函数  [NumPy库]

        要用到这一个函数,首先我们需要调用我们的NumPy库,这一个函数的作用是可以帮助我们生成一个元素值都是0的二维数组,如果我们把这些数据放到一张图片里面去,那么就对应着我们的一个黑色图像。当然我们也可以通过修改数组中的数字大小来改变图像的颜色(但还是灰度图像)

        (1)构成

                该函数的具体构成如下:

numpy.zeros(shape, dtype=float, order='C')  

                shape:即我们需要设置的二维数组(元组或者列表)的大小

                dtype:即我们需要设置的元组里面的数据的类型,一般默认为float;当然我们也可以变为其他(比如我们的int,bool);当然实际在写的时候可以不写dtype = ~~ 

                order:这个跟存储有关,暂且不做介绍(因为我也不知道哈)


1-2、生成 

  (1)正确示范:

import cv2
import numpy as npimg = np.zeros((80,80),dtype=np.uint8)img[40,40] = 255cv2.imshow("one",img)
cv2.waitKey()
cv2.destroyAllWindows()

                于是我们生成的图像如下:
 

                可以看到我们在中间生成了一个白点

                此外我们也可以使用切片来帮助我们更好地进行操作

  (2)可能会错误的操作

          1、没有 np. 前缀

                  这个现象代码如下:

img = np.zeros((80,80),uint8)

                  为什么直接写uint8不可以呢,因为python里面是没有内置这些数据类型的,这些数据类型只在NumPy里面有,所以如果我们想要去引用这些数据类型我们需要加上我们的np.前缀:(前面已经设置NumPy为np了)

img = np.zeros((80,80),np.uint8)

 

              2、直接使用int 

                       这个现象的代码如下:

img = np.zeros((80,80,80),dtype=int)

                        opencv不支持 CV_16F(16 位浮点数)和 CV_32S(32 位有符号整数)这两种数据类型,但是这里的int是默认为32 位有符号整数,故系统会报错

 



二、彩色图像的简单处理 

1-1、基础知识

        在opencv中的彩色图像是以BGR模式的三维数组的形式进行存储的,例如:

img = [0,0,0]

        第一个0指第0行;第二个0指0列;第三个0指的是第0个颜色通道(B,蓝色)

        0、1、2分别对应BGR(蓝色、绿色、红色)


1-2、简单的颜色修改

        例如我们现在还是采用如下图片:

        我们可以进行如下操作:

import cv2
img = cv2.imread("D:\\photo\\mountain.png")img[300:440 , 0:100 , 0:3] = 255cv2.imshow("one",img)
cv2.waitKey()
cv2.destroyAllWindows()

         由于我们现在是彩色图像采取的是BGR三通道,那么我们这里的操作就是把300行到440行,0列到100列的三个通道全部设置为255,即我们的每个像素点的三个通道的值为(255,255,255)具体显示出来的结果如下;

        当然我们还可以这么处理:

import cv2
img = cv2.imread("D:\\photo\\mountain.png")img[300:440 , 0:100 ] = (0,0,255)
img[300:440 , 100:200 ] = (0,255,0)
img[300:440 , 200:300 ] = (255,0,0)cv2.imshow("one",img)
cv2.waitKey()
cv2.destroyAllWindows()

        这样即对每一个在我们指定区域的像素点的BGR通道进行修改,结果如下:

         总结:在彩色图像中,每一个像素点都有三个通道(BGR)


1-3、通道处理 

        (1)通道拆分

                在我们的opencv中,我们可以通过索引把我们的三个通道全部提取出来:

b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]

                此时如果我们再去用cv2.imshow()函数将其展现出来,得到的是灰度图像,因为此时你的b、g、r中的数据只是单个通道的数据了,而不是三个通道了,这里我们就不过多地去展示。

                除了使用索引去拆分,我们还可以通过如下方式去拆分:

b,g,r = cv2.split(img)  这里直接分配了

        (2)通道合并

                既然我们可以拆分,那么我们也肯定可以合并,我们需要用到这个函数:

cv2.merge([b,g,r])

                正如上所示,你只需要将每个通道按照上面的形式摆放就可以了,当然你也不排除你把它的顺序搞反了,那么我们就很难绷了

http://www.dtcms.com/wzjs/558613.html

相关文章:

  • 郑州注册公司网站忻州网络公司网站建设
  • 企业网站改版价格苏州网站 制作 公司
  • 关于网站推广wordpress滑块不显示
  • 深圳高端企业官方网站建设上海建设项目环保验收公示网站
  • 区域文化网站建设方案企业网站创建小结
  • 兰州网站建设优化网件路由器怎么样
  • 河南省做网站的公司网页制作模板ppt制作
  • 重庆商城网站建设公司上海中学分数线
  • 网站开发工具是啥网站树状结构图怎么做
  • 外接硬盘做创建立网站百度网站公司信息推广怎么做的
  • 360免费建站 服务期重庆旅游网页设计
  • 电子商务网站建设的方法有哪些方面数据库网站开发外文翻译
  • 口腔网站设计图乐清做网站的
  • 公司怎么在百度做网站asp.net商务网站 包括哪些文件
  • 网站建设 手机appktv网站建设
  • 网站里面发消息怎么做超链接网站建设刷赞和vip
  • 响应云网站模板下载wordpress的图标怎么添加
  • 成都犀牛网站建设怎么做卖辅助网站
  • 做进行网站推广赚钱安卓从网站获取视频怎么做
  • wordpress企业站实例wordpress 搜索不管用
  • 提取卡密网站怎么做互联网门户网站建设
  • 为什么做的网站预览出来什么都没有百度小说搜索风云榜排名
  • 手机网站一键分享wordpress迁移安装
  • 广西临桂建设局网站如何注册免费网站
  • 中国城乡建中国城乡建设部网站做家教的正规网站
  • 网站首页布局诊断开鲁网站seo免费版
  • 手机网站模板案例新网域名注册官网查询
  • 怎么在免费空间里面做网站装饰公司网站模板
  • 360免费网站建设做网站来钱快
  • 做食品的采购员常用网站邯郸网站建设哪家强