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

郑州市住房和城乡建设委员会网站最新行业动态

郑州市住房和城乡建设委员会网站,最新行业动态,做电子商务网站建设工资多少钱,竞价托管多少钱文章目录前言上代码1.1 复习读取和显示1.2 图像放大、缩小 cv2.resize()1.3 图像平移1.4 图像旋转1.5 图像仿射变换1.6 图像的裁剪1.7 位运算(AND, OR, XOR)1.8 图像的分离和融合1.9 颜色空间 color space前言 坦白说,这一章我认为是整个opencv系列最难的一张&…

文章目录

  • 前言
  • 上代码
    • 1.1 复习读取和显示
    • 1.2 图像放大、缩小 cv2.resize()
    • 1.3 图像平移
    • 1.4 图像旋转
    • 1.5 图像仿射变换
    • 1.6 图像的裁剪
    • 1.7 位运算(AND, OR, XOR)
    • 1.8 图像的分离和融合
    • 1.9 颜色空间 color space


前言

坦白说,这一章我认为是整个opencv系列最难的一张,学会这一章需要用到很多前置知识,而我对这章的认知也很浅薄,大家加油。
提纲如下,其中4的原理比较复杂,支撑是矩阵运算。 6,7,8理解起来都有点难度,是因为应用空间比较少,你也能知道怎么实现,但不知道用在哪。

  1. 图像放大、缩小;cv2.resize(img, None,fx=0.5,fy=0.5,interpolation=cv2.INTER_LINEAR) cv2.resize(img, (width2, height2), interpolation=cv2.INTER_LINEAR)
  2. 图像平移; cv2.warpAffine()
  3. 图像旋转;
  4. 图像仿射变换;
  5. 图像裁剪;
  6. 图像的位运算(AND, OR, XOR);
  7. 图像的分离和融合;
  8. 图像的颜色空间;

本章节内容适合在jupternotebook直接呈现

上代码

1.1 复习读取和显示

import cv2
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread("../images/logo.png")
plt.imshow(img)

在这里插入图片描述
上面的颜色不对是因为没有变化通道,可以看第一章

img_new = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_new)

在这里插入图片描述

1.2 图像放大、缩小 cv2.resize()

图像放大、缩小 cv2.resize()

resize_img = cv2.resize(img, (width*2, height*2), interpolation=cv2.INTER_LINEAR)
plt.imshow(resize_img)

在这里插入图片描述

# cv2.resize() # 缩小, 扩大课缩小的两种方式啦 一个是传size的元组,一个是 传fx,fy的比例small_img = cv2.resize(img, None,fx=0.5,fy=0.5,interpolation=cv2.INTER_LINEAR)
plt.imshow(small_img)

在这里插入图片描述

1.3 图像平移

# 1 平移 cv2.warpAffine()
height,width = img.shape[:2]
M1 = np.float32([[1,0,10],[0,1,40]]) # 平移矩阵, 图像向右平移10个像素,向下移动40个像素
move_img = cv2.warpAffine(img, M1,(width,height))
plt.imshow(move_img)

在这里插入图片描述

1.4 图像旋转

height, width = img.shape[:2]
center = (width//2.0, height//2.0) # 渲染的中心
M3 = cv2.getRotationMatrix2D(center, 180 , 1) # 1 表示旋转过程中没有缩放
rotation_img = cv2.warpAffine(img,M3, (width, height))
plt.imshow(rotation_img)

在这里插入图片描述

1.5 图像仿射变换

就是一个图片的拉伸,旋转,扭曲的变化,通过矩阵乘法实现的,就是两个空间矩阵的作用,
简单理解2位空间就是 y=2x + 3, 沿着向量(2,3) 做一次移动
p1,p2 是自造的,可以使任意的值,在三个通道下,做三个(2,3)的移动

# cv2.getAffineTransform(p1,p2)
p1 = np.float32([[120,35],[215,45],[135,120]])
p2 = np.float32([[135,45],[300,110],[130,230]])
M4 = cv2.getAffineTransform(p1,p2) # 计算一个变换矩阵
trans_img = cv2.warpAffine(img,M4, (width,height))
plt.imshow(trans_img)

在这里插入图片描述

1.6 图像的裁剪

这个是最简单的一种变换

crop_img = img[20:140, 40:200]
plt.imshow(crop_img)

在这里插入图片描述

1.7 位运算(AND, OR, XOR)

按位与运输 或运输 非运算
计算机组成上或者C语言教材上的基本落脚点,逻辑控制/电路控制 没想到吧,图形控制也有我。

# 长方形
rectangle = np.zeros((300, 300), dtype='uint8')
plt.imshow(rectangle)
# 0 像素点代表黑

在这里插入图片描述

rectangle = np.zeros((300, 300), dtype='uint8')
# 255是填充颜色 ?? 未知
# -1 是填充的厚度, -1 是完全填充, 10是10像素填充 (25,25) 左上 (275,275) 右下 
rect_img = cv2.rectangle(rectangle,(25,25),(275,275),255,-1)
plt.imshow(rect_img)

rectangle = np.zeros((300,300), dtype='uint8')
# (150,150) 圆心, 150 半径 255,未知, -1 完全填充
circle_img = cv2.circle(rectangle,(150,150),150,255,-1)
plt.imshow(circle_img)

# 与运算:cv2.bitwise_and(), 00:0 01:0, 10:0, 11:1 与运行时同性相吸
and_img = cv2.bitwise_and(rect_img,circle_img)
plt.imshow(and_img)

在这里插入图片描述

# OR 或运算 01:1, 10:1,00:0, 11:1  有1放行
or_img = cv2.bitwise_or(rect_img, circle_img)
plt.imshow(or_img)

在这里插入图片描述

# XOR 抑或运算 01:1 10:1 00:0  11:0 异性相吸
xor_img = cv2.bitwise_xor(rect_img,circle_img)
plt.imshow(xor_img)

在这里插入图片描述

1.8 图像的分离和融合

img = cv2.imread("../images/logo1.png")
plt.imshow(img)
B,G,R = cv2.split(img) # 分离

在这里插入图片描述

plt.imshow(B) #蓝色

在这里插入图片描述

plt.imshow(G) #蓝色

在这里插入图片描述

plt.imshow(R)

在这里插入图片描述

2.融化
# 2.融合
zeros = np.zeros(img.shape[:2],dtype="uint8")
plt.imshow(cv2.merge([zeros,zeros,R]))

在这里插入图片描述

plt.imshow(cv2.merge([B,zeros,zeros]))

在这里插入图片描述

plt.imshow(cv2.merge([zeros,G,zeros]))

在这里插入图片描述

1.9 颜色空间 color space

# 灰度
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray)

在这里插入图片描述

# HSV(色度、饱和度、纯度)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
plt.imshow(hsv)

在这里插入图片描述
名称
在开始之前,先明确一下Lab颜色空间(Lab color space)的名字:

  • Lab的全称是CIELAB,有时候也写成CIE Lab*
  • 这里的CIE代表International Commission on Illumination(国际照明委员会),它是一个关于光照、颜色等的国际权威组织。

通道
Lab是由一个亮度通道(channel)和两个颜色通道组成的。在Lab颜色空间中,每个颜色用L、a、b三个数字表示,各个分量的含义是这样的:

  • L*代表亮度
  • a*代表从绿色到红色的分量
  • b*代表从蓝色到黄色的分量

Perceptual uniform
Lab是基于人对颜色的感觉来设计的,更具体地说,它是感知均匀(perceptual uniform)的。Perceptual uniform的意思是,如果数字(即前面提到的L、a、b这三个数)变化的幅度一样,那么它给人带来视觉上的变化幅度也差不多。

Lab相较于RGB与CMYK等颜色空间更符合人类视觉,也更容易调整:想要调节亮度(不考虑Helmholtz–Kohlrausch effect,见下注)就调节L通道,想要调节只色彩平衡就分别调a和b。

注:Helmholtz–Kohlrausch effect是人眼的一种错觉——当色彩饱和度高时,颜色会看起来更亮

#lab
lab = cv2.cvtColor(img,cv2.COLOR_BGR2Lab)
plt.imshow(lab)

在这里插入图片描述

http://www.hengruixuexiao.com/news/38556.html

相关文章:

  • 汉网网站建设今日国内新闻最新消息10条新闻
  • 深圳创业项目资源网站排名优化seo
  • 长宁专业做网站杭州上城区抖音seo有多好
  • 用什么技术可以做web网站如何推广app赚钱
  • 上海网站建设推荐q479185700顶你品牌营销的四大策略
  • 网站图片设置链接东莞seo技术培训
  • 济南网站建设附子seo教程
  • wordpress中动态设置轮播图片百度快照优化推广
  • .tel域名能存放网站吗自己搭建网站需要什么
  • 俄文网站建设 俄文网站设计现在有哪些免费推广平台
  • 做360网站中保存的图片存在哪里的百度热搜榜排名
  • 哪家专门做特卖网站项目推广网站
  • 怎么做关不掉的网站大连seo关键词排名
  • 自己做的网站用别的电脑怎么访问seo推广软件怎样
  • 建设建设银行甘肃分行网站今日新闻热点大事件
  • 网站 提示危险百度官方客服
  • 国外优秀vi设计网站商丘seo推广
  • 大学毕业网站设计代做郑州网站关键词排名技术代理
  • 网上设计接单赚钱上海百度推广优化
  • 网站开发的检索速度在啥范围之内网络服务是什么
  • 武汉网站模板排名优化是怎么做的
  • 做网商必备网站seo网站有优化培训吗
  • 邯郸做淘宝网站推销广告
  • qq官方网站域名权重查询工具
  • wordpress企业主题带后台优化推广联盟
  • 上海华东民航机场建设公司网站怎么样把自己的产品网上推广
  • 湖南网站制作百度霸屏推广
  • 怎么做商业服务网站推广方案应该有哪些方面
  • 中国建设银行网站-个人客正规seo排名外包
  • 期货配资网站开发如何在百度上做免费推广