当前位置:首页 >> 编程语言 >> 【Python-第三方库-OpenCV】随笔,9 电影

【Python-第三方库-OpenCV】随笔,9 电影

0evadmin 编程语言 1
文件名:【Python-第三方库-OpenCV】随笔,9 电影 【Python-第三方库-OpenCV】随笔

随笔

理论 【1】

说明

image.shape释义;获取图像的属性(信息);图像的属性包括:行,列,通道,图像数据类型,像素数目等;

正文A

在图像处理中,image.shape表示图像的尺寸和通道数;对于彩色图像,通常有三个通道(红、绿、蓝);而灰度图像只有一个通道。

正文B

image.shape返回一个表示图像形状的元组;具体的含义是 (height, width, channels);height表示图像的高度(垂直方向上的像素数);width表示图像的宽度(水平方向上的像素数);channels表示图像的通道数,对于彩色图像通常是3(红、绿、蓝),对于灰度图像是1;

正文C

举例,image.shape[2]表示图像的通道数,对于彩色图像来说,它应该是 3;这个信息在处理图像时很重要,因为它帮助我们正确地解释和处理图像的各个通道。

正文D

img.shape[:2]表示取彩色图片的长、宽;img.shape[:3]则取彩色图片的长、宽、通道;

正文E

关于img.shape[0]、[1]、[2];img.shape[0]:图像的垂直尺寸(高度);img.shape[1]:图像的水平尺寸(宽度);img.shape[2]:图像的通道数;在矩阵中,[0]就表示行数,[1]则表示列数。 实操 【1】

说明

图片的加载、显示和保存;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 参数-1为按原通道读入,不写的话默认读入三通道图片,例如(112,112,3)print(img.shape) # 读入的时图片的高度heightprint(img.shape[0]) # 读入的时图片的宽度weightprint(img.shape[1])

结果

(607, 1382, 3)6071382 【2】

代码

import cv2# 读取图片img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 读取图片(仅读取灰色)imgGrey = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg", 0)# 展示图片cv2.imshow("img", img)# 展示图片cv2.imshow("imgGrey", imgGrey)# 等待图片的关闭cv2.waitKey()# 写出图片cv2.imwrite(r"C:\Users\SUNxRUN\Desktop\Demo_1.jpg", imgGrey)

疑问

imshow的两个参数作用是什么? 【3】

说明

图像显示窗口的创建与销毁;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 创建一个窗口cv2.namedWindow("img", cv2.WINDOW_AUTOSIZE)cv2.imshow("img", img)cv2.waitKey()# 销毁任何建立的窗口cv2.destroyAllWindows()

注释

cv2.namedWindow(窗口名,属性)- 属性:指定窗口大小模式;>>> `cv2.WINDOW_AUTOSIZE`:根据图像大小自动创建大小;>>> `cv2.WINDOW_NORMAL`:窗口大小可调整; 【4】

说明

图片宽、高、通道数获取;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")imgGrey = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg", 0)sp1 = img.shapesp2 = imgGrey.shapeprint(sp1)print(sp2)

结果

(800, 800, 3)(800, 800) 【5】

说明

图像像素数目和图像数据类型的获取;

代码

import cv2img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")imgSize = img.sizeprint(imgSize)ty = img.dtypeprint(ty)

结果

1920000uint8

解释

图像矩阵img的size属性和dtype属性分别对应图像的像素总数目和图像数据类型;一般情况下,图像的数据类型是uint8; 【6】

说明

获取和修改图片中某点的像素值;

代码

import cv2# 读取图像(使用cv2读进来是一个`numpy`矩阵,像素值介于0~255)img = cv2.imread(r"C:\Users\SUNxRUN\Desktop\Demo.jpg")# 读取像素点px = img[100, 100]print(px, " ", type(px))# 修改像素img[100, 100] = [0, 0, 0]print(img[100, 100])

结果

[96 75 67] <class 'numpy.ndarray'>[0 0 0]

说明

访问和操作图像像素;

代码


说明

生成指定大小的空图像;

代码

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接