您的位置:首页 > 教育 > 锐评 > 怎么改版一个网站_郴州网警_windows优化大师和鲁大师_营销型网站建设易网拓

怎么改版一个网站_郴州网警_windows优化大师和鲁大师_营销型网站建设易网拓

2025/3/25 19:28:12 来源:https://blog.csdn.net/weixin_44242403/article/details/146382985  浏览:    关键词:怎么改版一个网站_郴州网警_windows优化大师和鲁大师_营销型网站建设易网拓
怎么改版一个网站_郴州网警_windows优化大师和鲁大师_营销型网站建设易网拓

1. 图像读取

导入依赖项的h文件

#include <iostream>#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
项目Value
core.hpp基础数据结构和操作(图像存储、矩阵运算、文件 I/O)
highgui.hpp图像显示、窗口管理、用户交互(图像/视频显示、用户输入处理、结果保存)
imgproc.hpp图像处理算法(图像滤波、几何变换、边缘检测、形态学操作)

二 读取图片

Mat image; // 图像矩阵
std::cout << "This image is " << image.rows << " x "<< image.cols << std::endl;
// read the input image as a gray-scale image
image = cv::imread("E:/CODE/images/puppy.bmp", cv::IMREAD_GRAYSCALE);

cv::IMREAD_GRAYSCALE 以灰度图 ,默认是彩色图

1. Mat 常见操作

//创建Mat图像矩阵 CV_8U CV_8UC3 参数对应位数 通道数
Mat image1(240, 320, CV_8U, 100); 
//100 为默认值,三通道使用cv::Scalar(0, 0, 255)
//图像直接复制
image3.copyTo(image2);
//图像对象直接继承
Mat image4(image3);
// 图像对象格式转换
image1.convertTo(image2, CV_32F, 1 / 255.0, 0.0);
// 获取mat块某一片区域
image=  cv::imread("puppy.bmp");
// define image ROI at image bottom-right
imageROI= image(cv::Rect(image.cols-logo.cols,image.rows-logo.rows,logo.cols,logo.rows));// use the logo as a mask (must be gray-level)cv::Mat mask(logo);// insert by copying only at locations of non-zero mask 0值区域为透明
logo.copyTo(imageROI,mask);

2. Matx 矩阵计算

	// a 3x3 matrix of double-precisioncv::Matx33d matrix(3.0, 2.0, 1.0,2.0, 1.0, 3.0,1.0, 2.0, 3.0);// a 3x1 matrix (a vector)cv::Matx31d vector(5.0, 1.0, 3.0);// multiplicationcv::Matx31d result = matrix * vector;

三 窗口响应函数

下列函数实现opencv窗口的点击事件监听

void onMouse(int event, int x, int y, int flags, void* param) {Mat* im = reinterpret_cast<Mat*>(param);switch (event) {	// dispatch the eventcase cv::EVENT_LBUTTONDOWN: // mouse button down event// display pixel value at (x,y)cout << "at (" << x << "," << y << ") value is: "<< static_cast<int>(im->at<uchar>(cv::Point(x, y))) << std::endl;break;}
}

将监听函数绑定到窗口

	namedWindow("Original Image"); // define the window (optional)imshow("Original Image", image); // show the image// 绑定点击事件setMouseCallback("Original Image", onMouse, reinterpret_cast<void*>(&image));

四 图像绘制内容

flip(image, result, 1); // 图像翻转
// 0 for vertical,                     
// negative for both
// 保存位图
imwrite("output.bmp", result); // save result// 在image中画圆
cv::circle(image,              // destination image cv::Point(155, 110), // center coordinate65,                 // radius  0,                  // color (here black)3);                 // thickness
// 在图像上写字
cv::putText(image,                   // destination image"This is a dog.",        // textcv::Point(40, 200),       // text positioncv::FONT_HERSHEY_PLAIN,  // font type2.0,                     // font scale255,                     // text color (here white)2);                      // text thickness

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com