文章目录
- 1.文章内容来源
- 2.图像的基本操作
-
- 2.1.图像加载
- 2.2.图像显示
- 2.3.数据读取
- 2.4.截取图像
- 2.5.颜色通道提取
-
- 2.5.1.保留红色处理
- 2.5.2.保留绿色处理
- 2.5.3.保留蓝色处理
- 3.易错点总结与反思
1.文章内容来源
1.题目来源:
2.资料来源:https://edu.csdn.net/skill/opencv/opencv-819f137c35c64f76945bcd7e60d37807?category=657&typeId=20810
2.图像的基本操作
2.1.图像加载
import cv2
img = cv2.imread(r"cv.jpg")
print(type(img))
print(img)
2.2.图像显示
import cv2
img = cv2.imread(r"cv.jpg")
cv2.namedWindow('Test_Figure', 0)
cv2.resizeWindow('Test_Figure', 900, 600)
cv2.imshow("Test_Figure",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.3.数据读取
imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称,第二个参数表示加载的图像是什么类型,支持常见的三个参数值
IMREAD_UNCHANDED(<0) 表示加载原图,不做任何改变
IMREAD_GRAYSCALE(0) 表示把原图作为灰度图像加载进来
IMREAD_COLOR(>0) 表示把原图作为 RGB 图像加载进来
import cv2
img = cv2.imread(r"cv.jpg",cv2.IMREAD_GRAYSCALE)
print(img)
还可以对图片进行输出
import cv2
img = cv2.imread(r"cv.jpg",cv2.IMREAD_GRAYSCALE)
cv2.namedWindow('Test_Figure', 0)
cv2.resizeWindow('Test_Figure', 900, 600)
cv2.imshow("Test_Figure",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
print(img)
2.4.截取图像
import cv2
img = cv2.imread(r"cv.jpg")
cat = img[0:200, 0:200]
cv2.imshow("cat_Figure",cat)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.5.颜色通道提取
import cv2
img = cv2.imread(r"cv.jpg")
b,g,r = cv2.split(img)
print(r,g,b)
2.5.1.保留红色处理
import cv2
img = cv2.imread(r"cv.jpg")
imgR = img.copy()
imgR[:,:,0] = 0
imgR[:,:,1] = 0
cv2.namedWindow('Red Color', 0)
cv2.resizeWindow('Red Color', 900, 600)
cv2.imshow('Red Color',imgR)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.5.2.保留绿色处理
import cv2
img = cv2.imread(r"cv.jpg")
imgG = img.copy()
imgG[:,:,0] = 0
imgG[:,:,2] = 0
cv2.namedWindow('Green Color', 0)
cv2.resizeWindow('Green Color', 900, 600)
cv2.imshow('Green Color',imgG)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.5.3.保留蓝色处理
import cv2
img = cv2.imread(r"cv.jpg")
imgB= img.copy()
imgB[:,:,1] = 0
imgB[:,:,2] = 0
cv2.namedWindow('Blue Color', 0)
cv2.resizeWindow('Blue Color', 900, 600)
cv2.imshow('Blue Color',imgB)
cv2.waitKey(0)
cv2.destroyAllWindows()
3.易错点总结与反思
总结与反思:
1.首先需要牢记数据读取的几个参数值,IMREAD_UNCHANDED/IMREAD_GRAYSCALE/IMREAD_COLOR各是什么意思
2.图像是由高维的连续的灰度值建立而成的。
3.通过split()函数可以对图像的颜色通过进行一个截取。
4.图像由RGB三种颜色组成,我们可以只显示一种颜色/两种颜色/三种颜色等等
5.如何显示/不显示某种颜色呢,就是将色度矩阵的最后一列进行操作,对应的数如下Blue(0),Green(1),Red(2)。