本章,在介绍了图像的基本数据结构之后,来学习图像的一些基本操作,包括图像的载入、显示、ROI、绘图、输出等,这些操作是后续进行图像处理的必备工具。
1 图像的载入,显示,与输出
1.1 Python3
现在通过一个demo来认识Python3中图像的载入,显示,与输出操作:
import cv2
import numpy as np
# default read as BGR picture
img1 = cv2.imread('color.jpg')
# show it in the window
cv2.imshow('image1',img1)
# write it to local disk
cv2.imwrite('image1.jpg',img1)
# read as grayscale picture
img2 = cv2.imread('color.jpg',cv2.IMREAD_GRAYSCALE)
# show it in the window
cv2.imshow('image2',img2)
# write it to local disk
cv2.imwrite('image2.jpg',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
实际运行效果如下图所示,在运行后,在python文件路径下可找到image1.jpg,image2.jpg文件,且image2.jpg是灰度图像。
1.2 C++
C++源码类似如下:
#include
#include
using namespace cv;
int main(void)
{
Mat img1=imread("color.jpg");
namedWindow("image1");
imshow("image1",img1);
imwrite("image1.jpg",img1);
Mat img2=imread("color.jpg",IMREAD_GRAYSCALE);
namedWindow("image2");
imshow("image2",img2);
imwrite("image2.jpg",img2);
waitKey(0);
return 0;
}
2 视频,摄像头的载入,显示
2.1 Python3
现在通过一个demo来理解Python3中视频,摄像头的载入与显示操作,且在该操作中,包含了摄像头的翻转,摄像头开窗定义等。
同时还包含了视频的载入,显示操作;注意,OpenCV只支持读取avi格式的视频,并且不包含音频。
import cv2
capCamera = cv2.VideoCapture(0)
if(not capCamera.isOpened()):
print("can't open this camera")
exit(0)
capVideo = cv2.VideoCapture('demo.avi')
if(not capVideo.isOpened()):
print("can't open this video")
exit(0)
# set the image width and height
capCamera.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
capCamera.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
## image flip setup
# * horizontal flip: flipCode = 1
# * Vertical flip: flipCode = 0
# * horizontal & Ver