show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次安装了opencv
- 并且打开了图片
- 查看了图片
- 还另存了图片
- 图片的本质是什么呢?
- 为什么输出的时候会输出一个三维数组呢?🤔
firefox ~/monkey.png
- 这是一副新的png图素材
- 能否看到图片的形状信息呢?
import cv2
image = cv2.imread("/home/shiyanlou/monkey.png")
print(image)
- 运行结果
- 能否看到这个三维列表的维度呢?
import cv2
image = cv2.imread("/home/shiyanlou/monkey.png")
print(image.shape)
- 运行得到一个三元组
- 这三个变量是什么呢?
- 图片大小是400*356
- 图片是RGB色彩存储的
- 三元组对应着
- 高度
- 宽度
- 通道数
import cv2
image = cv2.imread("/home/shiyanlou/monkey.png")
height, width, channels = image.shape
print("height====",height)
print("width====",width)
print("channels====",channels)
- 运行结果
- 这三项构成了图像的size
- 可以直接输出size吗?
import cv2
image = cv2.imread("/home/shiyanlou/monkey.png")
height, width, channels = image.shape
print("height====",height)
print("width====",width)
print("channels====",channels)
size = image.size
print("size====",height,"*",width,"*",channels,"=",size)
- 图像大小如下图
- 每个通道由什么数据类型来构建呢?
import cv2
image = cv2.imread("/home/shiyanlou/monkey.png")
height, width, channels = image.shape
print("height====",height)
print("width====",width)
print("channels====",channels)
size = image.size
print("size====",height,"*",width,"*",channels,"=",size)
dtype = image.dtype
print("dtype=====",dtype)
- 结果
- 每个通道用的是8-bit的unsigned int类型
- 可以把RGB三元组的颜色降维成
- 单一数值的灰度图吗?
- 改变图片色彩模式
- 从RGB转化为灰度
import cv2
rgbImg = cv2.imread("/home/shiyanlou/monkey.png")
grayImg=cv2.cvtColor(rgbImg,cv2.COLOR_BGR2GRAY)
cv2.imshow("grayImg", grayImg)
cv2.imwrite('/home/shiyanlou/gray_img.jpg', grayImg)
if cv2.waitKey(0)==27:
cv2.destroyAllWindows()
- 并且指定按下esc键时退出
- 确实变成灰色了
- 列表降维了吗?
import cv2
image = cv2.imread("/home/shiyanlou/gray_img.jpg")
print(image)
- 运行结果
- 结果还是三元组
- 只不过RGB三个分量的数值都是相等的
- 表面上是灰色图
- 本质上还是RGB色彩模式
- 真正的灰度图是否会降维呢?
- 我们这次研究了图像的shape
- 高度
- 宽度
- 通道数
- 并且把图像从RGB色彩模式修改为灰度色彩模式
- 结果仍然是三维列表
- 真正的灰度图也是三维列表吗?🤔
- 我们下次再说 👋