接下来这一节,我们主要学习一下,怎样使用opencv进行基本的图像操作(python)
1.读、写和显示图像
在opencv里,imread()函数是用来从硬盘上读图像文件的;
imwrite()函数是用来将图片写到硬盘上的;
imshow()函数则是用来将图片显示出来的(需配合使用namedWindow函数和waitKey函数);
接下来这一节,我们主要学习一下,怎样使用opencv进行基本的图像操作(python)
1.读、写和显示图像
在opencv里,imread()函数是用来从硬盘上读图像文件的;
imwrite()函数是用来将图片写到硬盘上的;
imshow()函数则是用来将图片显示出来的(需配合使用namedWindow函数和waitKey函数);
import cv2
# 读取图片sample.jpg
image = cv2.imread("../data/images/sample.jpg")
if image is None: # 检查是否有读取到了图片
print("Could not open or find the image")
# 使用cvtColor()函数,将原图(彩色)转化为灰度图
grayImage = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 将灰度图保存为imageGray.jpg文件
cv2.imwrite("imageGray.jpg", grayImage)
# 创建窗口,用来显示图片
cv2.namedWindow("image", cv2.WINDOW_AUTOSIZE)
cv2.namedWindow("gray image", cv2.WINDOW_NORMAL)
# 显示图片
cv2.imshow("image", image)
cv2.imshow("gray image", grayImage)
# 等待按下任意键,才关闭图片显示的窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
2.缩放(resize)和裁剪图片(crop)
在opencv里,我们使用resize()函数调整图片尺寸,即缩放;
import cv2
# 读取图片
source = cv2.imread("../data/images/sample.jpg",1)
# 定义x,y方向的缩放因子
scaleX = 0.6
scaleY = 0.6
# 将图片缩小为原来的0.6倍
scaleDown = cv2.resize(source, None, fx= scaleX, fy= scaleY, interpolation= cv2.INTER_LINEAR)
# 将图片放大到原来的1.8倍
scaleUp = cv2.resize(source, None, fx= scaleX*3, fy= scaleY*3, interpolation= cv2.INTER_LINEAR)
#剪切图像。我们直接操作numpy数组进行操作,将其中的指定行、列内容读出来,即完成图像剪切
crop = source[50:150,20:200]
# 显示所有图片(原图、缩小、放大、剪切后的图)
cv2.imshow("Original", source)
cv2.imshow("Scaled Down", scaleDown)
cv2.imshow("Scaled Up", scaleUp)
cv2.imshow("Cropped Image",crop)
cv2.waitKey(0)