1、图片导入
原图读取:
Mat image = imread(“F:/projects/opencv/opencv1.jpeg”);
读取图片,返回灰度图:
Mat image = imread(“F:/projects/opencv/opencv1.jpeg”, IMREAD_GRAYSCALE | IMREAD_IGNORE_ORIENTATION);
调用imwrite
imwrite(“F:/projects/opencv/opencv1_copy.jpeg”, image);
2、图片显示
此方法:将图片和滑条显示到同一窗口上
namedWindow(“dst”,1);//创建一个窗口
createTrackbar(“contrast”, “dst”, &g_nContrastValue, 300, on_ContrastAndBright);//创建滑条,显示到名为"dst"的窗口上
imshow(“dst”, g_dstImage);//显示图片到dst窗口上
3、图片裁剪
截取原图指定的行列:
Mat crop = image(Range(80,280),Range(150,330)); //(Range(start_row, end_row), Range(start_col, end_col))
利用水平坐标系截取图片
Rect roi(200, 100, 300, 300);前面两个参数为距左上原点的x方向与y方向的距离,后两个参数为延伸的x,y长度
imgCrop = image(roi);
4、改变图片大小
cv::resize(image, imgResize, Size(),0.5,0.5);//按0.5倍比例缩放图片
5、图片区域改变颜色
image(Range(80,280),Range(150,330)) = (0, 0, 255);//改成蓝色
6、图片的仿射变化
仿射变换对应着五种变换:平移,缩放,旋转,翻转,错切
平移:水平方向向右平移250个像素,竖直方向向下平移500个像素
M = np.float32([[1,0,250],[0,1,500]])//目标点
shift_image = cv2.warpAffine(image, M, (w,h))
旋转:(cX,cY)表示旋转中心点,45表示逆时针旋转角度,0.5表示缩放比例
M = cv2.getRotationMatrix2D((cX,cY), 45, 0.5)
image = cv2.warpAffine(image, M, (w,h))
7、图片的翻转
竖直翻转:
flip(srcImage, dstImage, 0);
水平翻转:
flip(srcImage, dstImage, 1);