opencv c++(2):图像处理常用方法详解
1 创建显示窗口
1.1 api介绍
要用到下面4个api
namedWindow(); //创建窗口
imshow(); //显示窗口
resizeWindow(); //重置窗口大小
destroyAllWindows(); //销毁窗口
我们在编程的一个很重要的步骤就是学会看api,可以不用看官网,直接在代码中点进去这个api会有详细的介绍。
比如我们使用vs2019,把鼠标放上去就会有这些api的介绍,然后Ctrl + 左键点进去就能看到这个api的更详细介绍(前提是opencv要装好)



下面就来简单介绍下常用的参数
void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE); void imshow(const String& winname, InputArray mat); void resizeWindow(const String& winname, int width, int height); void resizeWindow(const String& winname, const cv::Size& size); int waitKey(int delay = 0); void destroyAllWindows();
1.2 示例
//源文件
#include<opencv.hpp>
using namespace cv;
/*
nameWindow();
destroyAllWindows();
resizeWindow();
waitKey();
destroyAllWindows();
*/
int main()
{
//定义
mat Mat m(Size(256, 256),CV_8UC3,
Scalar(0, 255, 0)
);
//创建win1窗口
namedWindow("win1", WINDOW_NORMAL);
//将m显示在win1上
imshow("win1", m);
//自动创建win2窗口,将m显示在win2上
imshow("win2", m);
//resize win1窗口大小
resizeWindow("win1", Size(512, 512));
//阻塞
waitKey(0);
//销毁所有窗口
destroyAllWindows();
}
2 读图、保存图片
先来看一下api
imread(); //读图
imwrite(); //保存图片
Mat imread( const String& filename, int flags = IMREAD_COLOR ); bool imwrite( const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>());
3 常用对图片操作的方法
-
cv::resize() 图像wh 放缩
resize( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR );
-
cv::cvtColor() 图像色彩空间转换
void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 )
-
cv::flip:对图像进行翻转操作,可以实现上下或左右翻转。
void flip(InputArray src, OutputArray dst, int flipCode);
-
cv::GaussianBlur:对图像进行高斯模糊操作,可以去除图像中的噪声和细节。
void GaussianBlur( InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY = 0, int borderType = BORDER_DEFAULT );
-
cv::threshold:对图像进行二值化操作
double threshold( InputArray src, OutputArray dst, double thresh, double maxval, int type );
-
cv::warpAffine:对图像进行仿射变换操作,可以实现平移、旋转、缩放等变换。
Mat M = getRotationMatrix2D(cv::Point2f center, double angle, double scale);
void warpAffine( InputArray src, OutputArray dst,
InputArray M,
Size dsize,
int flags = INTER_LINEAR,
int borderMode = BORDER_CONSTANT,
const Scalar& borderValue = Scalar());;
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_59156726/article/details/130911819