python-opencv(1)图像的基础操作

简介: 文章目录1. 获取图像的属性2. 图像ROI3. 通道的拆分与合并3.1. 通道的拆分3.2. 通道的合并4. 参考

1. 获取图像的属性

  • 形状:行、列、通道数
  • 像素数目
  • 图像的数据类型

shape 可以获取图像的形状,返回包含行数,列数,通道数的元组。

灰度图像 返回行数和列数

彩色图像 返回行数,列数和通道数

size 可以获取图像的像素数目。

灰度图像 返回行数x列数

彩色图像 返回行数x列数x通道数

dtype 返回的是图像的数据类型。

import cv2
img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lena256.bmp")
print("形状为:",img1.shape)
print("数目为:",img1.size)
a,b,c = img1.shape
print(a,b,c)
img_color = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lenacolor.png")
print("形状为:",img_color.shape)
print("像素数目为:",img_color.size)
print("图像类型:",img_color.dtype)
cv2.imshow("12",img1)
cv2.imshow("color",img_color)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果

形状为: (256, 256, 3)
数目为: 196608
256 256 3
形状为: (512, 512, 3)
像素数目为: 786432
图像类型: uint8

2. 图像ROI

ROI(region of interest),感兴趣区域。

• 从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域。

• 可以通过各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。

#%%ROI
import cv2
import numpy as np
img1  = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lenacolor.png")
img2 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\girl.bmp")
cv2.imshow("origial",img1)
cv2.imshow("origial1",img2)
face = img1[220:400,250:350]
img2[200:380,250:350] = face
cv2.imshow("become face",img2)
#cv2.imshow("face",face)
#cv2.imshow("reslust",img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

3. 通道的拆分与合并

3.1. 通道的拆分

方法有三

'''
#第一种拆分方法
b = img1[:,:,0]
g = img1[:,:,1]
r = img1[:,:,2]
#第二种处分方法
b,g,r = cv2.split(img1)
#第三种拆分方法
b = cv2.split(img1)[0]
g = cv2.split(img1)[1]
r = cv2.split(img1)[2]
'''
#具体代码
import cv2
img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lenacolor.png")
print(img1.shape)
#第一种拆分方法
b = img1[:,:,0]
g = img1[:,:,1]
r = img1[:,:,2]
#第二种处分方法
b,g,r = cv2.split(img1)
#第三种拆分方法
b = cv2.split(img1)[0]
g = cv2.split(img1)[1]
r = cv2.split(img1)[2]
cv2.imshow("blue",b)
cv2.imshow("green",g)
cv2.imshow("red",r)
cv2.waitKey(0)
cv2.destroyAllWindows()

3.2. 通道的合并

通道的合并1
import cv2
img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lenacolor.png")
b,g,r = cv2.split(img1)
bgr = cv2.merge([b,g,r])
rgb = cv2.merge([r,g,b])
cv2.imshow("merge_bgr",bgr)
cv2.imshow("merge_rgb",rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()

#%%通道的合并2
import cv2
img1 = cv2.imread(r"C:\Users\lihuanyu\Desktop\opencv\image\lenacolor.png")
rows,cols,chn = img1.shape
b,_,_ = cv2.split(img1)
g = np.zeros((rows,cols),dtype = b.dtype)
r = np.zeros((rows,cols),dtype = b.dtype) 
img2 = cv2.merge([b,g,r])
cv2.imshow("merge",img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

相关文章
|
11天前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
107 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
1月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
73 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
1月前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
39 4
|
18天前
|
存储 JSON API
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
24 7
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
|
1月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
96 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
1月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
86 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
29天前
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
使用Python和TensorFlow实现图像识别
【8月更文挑战第31天】本文将引导你了解如何使用Python和TensorFlow库来实现图像识别。我们将从基本的Python编程开始,逐步深入到TensorFlow的高级功能,最后通过一个简单的代码示例来展示如何训练一个模型来识别图像。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
148 53
|
13天前
|
JSON API 数据格式
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
34 0
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(2)
|
2月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)