C++ 图像处理

OpenCV提供了丰富的图片处理功能。以下是一些常见的图片处理方式的C++示例代码:

#include <opencv2/opencv.hpp>  
#include <iostream>  int main() {  // 读取图片  cv::Mat img = cv::imread("example.jpg");  // 检查图片是否成功读取  if (img.empty()) {  std::cout << "Could not open or find the image" << std::endl;  return -1;  }  // 转换为灰度图  cv::Mat gray_img;  cv::cvtColor(img, gray_img, cv::COLOR_BGR2GRAY);  // 使用Canny进行边缘检测(Canny需要灰度图)cv::Mat edges;  cv::Canny(gray_img, edges, 50, 150);  // 使用高斯模糊  cv::Mat blurred_img;  cv::GaussianBlur(img, blurred_img, cv::Size(15, 15), 0);  // 直方图均衡化  cv::Mat equalized_img;  cv::equalizeHist(img, equalized_img);  // 裁剪图片cv::Rect r(50, 50, 200, 200);  cv::Mat new_img = img(r);// 旋转图片(旋转角度45,旋转点为图片中心点,旋转后大小不变)double angle = 45;cv::Point2f rot_pt(img.cols/2.0, img.rows/2.0);cv::Mat rotMatrix = cv::getRotationMatrix2D(rot_pt, angle, 1.0);rotMatrix.at<double>(0, 2) += (img.cols - 2 * rot_pt.x) * 0.5;  rotMatrix.at<double>(1, 2) += (img.rows - 2 * rot_pt.y) * 0.5;cv::Mat rotatedImg;  cv::warpAffine(img, rotatedImg, rotMatrix, rotSize);// 翻转图片(翻转模式:0表示水平翻转,1表示垂直翻转,-1表示水平和垂直翻转)int flipCode = 1;cv::Mat flippedImg;  cv::flip(img, flippedImg, flipCode);  // 显示图片  cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE);  cv::imshow("Display window", img);  // 保存图片cv::imwrite("save_image.jpg", img); // 等待按键  cv::waitKey(0);  return 0;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

域名注册成功后能删除吗?

域名注册成功后&#xff0c;很多用户可能会有这样的疑问&#xff1a;如果不再需要这个域名&#xff0c;能否将其删除?这个问题的答案取决于多个因素&#xff0c;包括域名的注册政策、使用期限以及注册商的规定。本文将探讨域名注册成功后的删除问题&#xff0c;帮助用户更好地…

巧用SOLIDWORKS进行复杂曲面模型的实体建模

SOLIDWORKS正版软件有实体建模、曲面建模、钣金建模、焊件建模、模具建模等多种建模方式&#xff0c;每种建模方式都有独特的使用环境和场景&#xff0c;如果能灵活使用这些建模命令&#xff0c;就可以起到事半功倍的效果。 如上图所示的模型&#xff0c;通过观察和分析&#x…

1992-2023年全国及31省人均地区生产总值/人均GDP数据(无缺失)

1992-2023年全国及31省人均地区生产总值/人均GDP数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1992-2023年 2、来源&#xff1a;国家统计局、各省年鉴 3、指标&#xff1a;人均国内生产总值/人均GDP 4、范围&#xff1a;全国及31省 5、缺失情况&#xff1a;无缺…

中介子方程三十一

XXFXXuXXWXXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXdXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXXWXXuXXFXXEXXyXXEXXrXXαXXuXpXXdXXpXuXXαXXrXXEXXyXXαXiXXαXiXrXkXtXyXXpXVXXdXuXWX…

什么是测试自动化?意义、方法、方法论、工具和收益

测试自动化使用软件和脚本来自动测试程序&#xff0c;使测试更快、更有效。本文将了解测试自动化的基本原理、方法、工具、好处和挑战。 测试自动化被定义为软件开发中用于自动执行测试的技术。 它包括编写脚本或使用专门的软件工具来自动执行测试&#xff0c;而无需人工干预。…

【杂记-浅谈LSA链路状态通告】

浅谈LSA链路状态通告 一、LSA链路状态通告概述二、LSA的作用三、LSA的类型和使用场景 一、LSA链路状态通告概述 LSA&#xff0c;Link State Advertisement&#xff0c;链路状态通告&#xff0c;是OSPF协议中的一个核心组件&#xff0c;用于在路由器之间交换链路状态信息。LSA包…

Spring Boot 和 Spring Framework 的区别是什么?

SpringFramework和SpringBoot都是为了解决在Java开发过程中遇到的各种问题而出现的。了解它们之间的差异&#xff0c;能够更好的帮助我们使用它们。 SpringFramework SpringFramework是一个开源的Java平台&#xff0c;它提供了一种全面的架构和基础设施来支持Java应用程序的开…

ffmpeg的安装教程

1.官网下载ffmpeg 进入Download FFmpeg网址&#xff0c;点击下载windows版ffmpeg&#xff08;点击左下第一个绿色的行&#xff09; 在release builds第一个绿框里面选择一个版本下载。 2.配置 下载完成后解压该压缩包单击进入ffmpeg\bin&#xff0c;会出现如下界面&#xff1…

【华为OD机试】最小调整顺序次数 / 特异性双端队列(C++ Java JavaScript Python )

题目 题目描述 有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。 小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从尾部添加),依次添加1到n;n个指令是移出数据。 现在要求移除数据的顺序…

【XCharts插件】3-1、制作图表及代码生成图表(v1.0)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 XCharts插件是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。 【Unity3D…

Axios发送ajax请求

}, // 请求体参数 data: { username: ‘admin’, password: ‘admin’ } }).then(response>{ // 响应状态码 console.log(response.status); // 响应状态字符串 console.log(response.statusText); // 响应头信息 console.log(response.headers); // 响应体 c…

【数据分析】用Python做事件抽取任务-快速上手方案

目录 方法一&#xff1a;使用OmniEvent库安装OmniEvent使用OmniEvent进行事件抽取OmniEvent优点缺点 方法二&#xff1a;使用大模型使用GPT网页版进行事件抽取事件类型列表 大模型优点缺点 总结 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;事件抽取是一项关键任…

西部证券:1+1>2?

又一起券商收购拉开帷幕&#xff0c;证券业并购浪潮呼之欲出。 这次是——西部证券。 最近&#xff0c;西部证券公告称&#xff0c;因自身发展需要正在筹划收购国融证券控股权事项&#xff0c; 这是继“浙商国都”、“国联民生”、“华创太平洋”之后&#xff0c;今年券商并购…

如何开发企业微信SCRM

企业微信SCRM&#xff08;Social Customer Relationship Management&#xff09;是一种用于管理和优化企业与客户关系的工具&#xff0c;它整合了社交媒体和CRM系统&#xff0c;帮助企业更有效地跟进销售线索、提供客户服务和进行市场营销。以下是开发企业微信SCRM的一些关键步…

惠普Hp激光打印机Laser MFP 1136w驱动下载,驱动安装过程中显示‘参数无效’解决办法,打开Print Spooler

Hp Laser MFP 1136w打印机驱动下载官网&#xff1a; https://support.hp.com/cn-zh/drivers/hp-laser-mfp-1000-printer-series/model/2101513884 官网上显示有固件和驱动程序&#xff0c;固件不管&#xff0c;选择驱动程序中的全功能解决方案&#xff0c;进行下载安装 在安装…

hive优化之逻辑类似or逻辑重复

今天拿到一个二次开发的需求&#xff0c;只是增加一个业务类型&#xff0c;开发起来倒是也蛮轻松。 但是&#xff0c;对自己的要求不难这么低&#xff0c;否则可替代性也太高了。 除了完成自己的那部分开发&#xff0c;当然展现自己实力的&#xff0c;可以是优化。 1&#x…

AI 大模型企业应用实战(08)-LangChain用prompts模板调教LLM的输入输出

超越chatGPT:学习使用prompts模板来调教LLM的输入输出&#xff0c;打造自己版本的"贾维斯" 1 Model I/O&#xff1a;LLM的交互接口 任何语言模型应用程序的核心要素都是......模型。LangChain 为您提供了与任何语言模型连接的构件。 即 Prompts -> Language mod…

神经网络参数-----batch_size

什么是BatchSize Batch一般被翻译为批量&#xff0c;设置batch_size的目的让模型在训练过程中每次选择批量的数据来进行处理。Batch Size的直观理解就是一次训练所选取的样本数。Batch Size的大小影响模型的优化程度和速度。同时其直接影响到GPU内存的使用情况&#xff0c;假如…

Java中的IO操作技巧与性能优化

Java中的IO操作技巧与性能优化 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨Java中的IO操作技巧与性能优化。IO操作是Java开发中常…