
C++探究,OpenCV,图片合成
文章平均质量分 52
telllong
c/c++/golang/js/java/python programer
展开
-
C++可从事的工作以及行情
例如,在游戏开发中,C++常用于游戏客户端的编写,因为它能够直接操控硬件资源,实现复杂的图形渲染、物理模拟等功能。此外,对于需要高性能处理的桌面应用,如专业级的图像编辑软件、CAD软件等,C++也是优选。在机器学习、图像处理、物理模拟、搜索引擎技术、推荐系统等领域的算法开发中,C++能够提供必要的计算效率和控制能力。C++在嵌入式领域被广泛采用,用于开发各种智能设备的固件和驱动程序,如物联网(IoT)设备、工业控制器、汽车电子系统、医疗设备、微控制器编程、嵌入式操作系统开发等。原创 2024-07-02 19:32:15 · 1349 阅读 · 1 评论 -
将图像转换为ASCII艺术形式
通过这个简单的示例,我们展示了如何使用OpenCV库将图像转换为ASCII艺术形式。这种技术可以应用于许多领域,如图像处理、艺术创作以及图像压缩等。你可以根据自己的需求和创意对这个程序进行扩展和改进,创造出更加独特和有趣的效果。原创 2024-04-02 13:54:36 · 731 阅读 · 1 评论 -
OpenCV 将rgb图像转化成字符图像
这段代码首先将RGB图像转换为灰度图像,然后对其进行降采样,最后将每个像素的灰度值映射到字符集中的字符,形成ASCII艺术图像。这里的字符集可以根据需要自定义,亮的像素映射到字符集中靠前的字符,暗的像素映射到靠后的字符。此外,降采样的比例应根据输出设备的实际分辨率进行调整。将RGB图像转换成字符图像(ASCII art)通常涉及到灰度化、降采样、映射字符等一系列步骤。原创 2024-03-11 14:42:47 · 526 阅读 · 0 评论 -
使用OpenCV实现两张图像融合在一起
图像融合技术是一种结合多个不同来源或不同传感器捕获的同一场景的图像数据,以生成一幅更全面、更高质量的单一图像的过程。这种技术广泛应用于遥感、医学影像分析、计算机视觉等多个领域。常见的图像融合技术包括基于像素级、特征级和决策级的融合方法,以及基于多尺度分解如图像金字塔的方法。原创 2024-03-11 13:52:46 · 2631 阅读 · 0 评论 -
文档扫描与矫正-仿射变换
在文档扫描过程中,由于拍摄角度和畸变等原因,文档图像可能存在一定程度的形变。仿射变换可以用于校正文档图像,使得文字和线条保持水平垂直,提高文档的可读性。图像变换是计算机视觉和图像处理中的关键技术之一,它允许我们对图像进行各种形式的变形、调整和校正。其中,仿射变换是一种常见的变换方式。在这个示例中,当你点击图像上的三个点时,程序会执行仿射变换,并显示原始图像和校正后的图像。以下是一个简单的C++示例代码,使用OpenCV实现放射变换并展示图像。为你自己的图像路径。原创 2024-01-10 16:52:19 · 585 阅读 · 0 评论 -
汉宁窗口介绍以及计算方法
汉宁窗口是一种在信号处理和频谱分析中常用的窗口函数。它的名字来自于发明者之一的Julius von Hann(也写作Hanning)。Hann是奥地利的物理学家,他于1928年发表了一篇题为《Über die Verwendung von Fensterfunktionen bei der Fourier-Analyse von Zeitabhängigen Messungen》(关于在傅里叶分析中使用窗口函数进行时间相关测量的论文)的文章,介绍了这个窗口函数的概念。原创 2023-12-26 17:36:09 · 5842 阅读 · 0 评论 -
使用OpenCV将图像转换为NV12格式并加载NV12数据
在新项目中,需要为上层应用开放几个接口,但又不想让上层应用过多依赖OpenCV。本文将详细介绍如何使用C++和OpenCV,通过加载图片并转换为NV12格式,实现对图像数据的处理,以及如何加载NV12数据并显示。这些步骤对于在相机等设备中处理YUV数据并与OpenCV进行无缝集成非常有用。原创 2023-11-20 17:42:55 · 3375 阅读 · 0 评论 -
opencv中绘制图像的函数
OpenCV 中用于绘制不同图形的 C++ 函数的简要介绍:image:目标图像pt1和pt2:矩形的对角线顶点坐标color:矩形的颜色thickness:线条的粗细,如果为负数,表示填充矩形image:目标图像text:要绘制的文本org:文本的起始坐标fontFace:字体类型fontScale:字体缩放因子color:文本颜色thickness:线条的粗细image:目标图像center:圆心坐标radius:半径color:圆的颜色thickness。原创 2023-11-02 17:07:35 · 807 阅读 · 0 评论 -
CMAKE_MODULE_PATH CMAKE_PREFIX_PATH CMAKE_INSTALL_PATH 区别以及使用方法
这些变量通常在CMake项目的配置文件(例如CMakeLists.txt文件)中设置。通过正确配置这些变量,你可以定制CMake项目的构建和安装行为,以适应项目的需求和环境。原创 2023-11-01 20:11:38 · 1986 阅读 · 0 评论 -
将图像的锯齿状边缘变得平滑的方法
使用PaddleSeg 192x192 模型分割出来的目标有锯齿状边缘,想通过传统算法将这种锯齿状边缘的变得平滑,虽然试了很过方法,但是效果还是不太理想。:如前面示例所示,双边滤波是一种能够平滑图像边缘并减少锯齿状边缘的有效方法。:中值滤波是一种非线性滤波方法,它用目标周围的像素值的中值来替代目标像素值。通常,双边滤波是一种通用方法,可以保持边缘细节并减少锯齿状边缘,但你也可以尝试其他方法,以获得最适合你应用的效果。:边缘保留滤波(如基于导向滤波的方法)可以在保留图像边缘的同时,平滑非边缘区域。原创 2023-11-01 15:45:11 · 6330 阅读 · 0 评论 -
opencv+yolov8实现监控画面报警功能
YOLOv8支持Pose和Segment,在使用TensorRT可以跑到1-2ms一帧YOLOv8提供了一个全新的SOTA模型,包括P5 640和P6 1280分辨率的目标检测网络和基于YOLACT的实例分割模型。YOLOv8和YOLOv5一样,基于缩放系数也提供了N/S/M/L/X尺度的不同大小模型,用于满足不同场景需求。YOLOv8骨干网络和Neck部分可能参考了YOLOv7 ELAN设计思想,将YOLOv5的C3结构换成了梯度流更丰富的C2f结构,并对不同尺度模型调整了不同的通道数。原创 2023-10-31 16:04:11 · 2389 阅读 · 0 评论 -
使用opencv的tracking模块跟踪目标
OpenCV的tracking模块是一个功能强大的跟踪算法库,包含多种用于跟踪对象的算法。它可以帮助你在连续的视频帧中定位一个物体,例如人脸、眼睛、车辆等。稀疏光流(Sparse optical flow):例如Kanade-Lucas-Tomashi (KLT)特征跟踪算法,跟踪图像中几个特征点的位置。卡尔曼滤波(Kalman Filtering):一种非常流行的基于先验运动信息的信号处理算法,用于预测运动目标的位置。这种算法的早期应用之一是导弹制导。原创 2023-10-31 11:25:16 · 1728 阅读 · 3 评论 -
opencv实现抠图,图像拼接,图像融合
在OpenCV中,你可以使用图像拼接、抠图和将图像的一部分放在另一张图片的指定位置。原创 2023-10-08 15:41:15 · 2600 阅读 · 1 评论 -
OpenCV cv::Mat和QImage互相转换
在使用OpenCV和Qt进行图像处理时,经常需要将cv::Mat和QImage之间进行转换。下面是cv::Mat和QImage。原创 2023-09-19 16:07:20 · 1225 阅读 · 0 评论 -
DragGAN使用记录
DragGAN是一种基于人工智能的图像编辑工具,它可以根据用户的输入生成逼真的图像。与传统的图像编辑工具只能扭曲或裁剪现有的像素不同,DragGAN可以创建与用户意图匹配的新内容。DragGAN的原理是利用生成对抗网络(GAN)来学习和模拟真实数据的分布,然后根据用户在图像上拖动的点来生成新的图像。用户可以通过拖动点来改变图像的姿态、表情、风格等细节,从而实现灵活和精确的图像操纵。DragGAN是一个开源的项目,它提供了一个网页版的演示,用户可以在浏览器中体验DragGAN的功能。原创 2023-09-18 14:28:12 · 317 阅读 · 0 评论 -
C/C++开源库推荐
C/C++开源库推荐原创 2023-07-27 17:58:24 · 6011 阅读 · 4 评论 -
windows上的IOCP如何使用,并用C++实现多客户端服务器
(Input/Output Completion Ports)来实现高性能的I/O多路复用机制。是Windows系统中一种高效的异步I/O机制,可以用于实现高并发的网络服务器。的代码相对复杂,需要理解异步I/O、事件驱动编程等概念。实现多客户端服务器的基本步骤,需要注意的是,在Windows系统中,可以使用。原创 2023-05-26 17:19:38 · 2066 阅读 · 0 评论 -
windows编译FastDeploy并使用yolov5对人脸进行检测
windows编译部署fastdeploy,并使用yolov5进行人脸检测原创 2023-03-22 19:52:39 · 571 阅读 · 0 评论 -
使用stable diffusion生成图片
保存为stable_diffusion.py并执行。requirements.txt 内容如下。原创 2023-03-16 14:42:10 · 1797 阅读 · 0 评论 -
Qt+Hook实现全局鼠标背景色
4.使用windows hook将鼠标的点击事件,通过qt信号槽函数传递给窗口,实时更换点击时背景色。1.使用windows HOOK,获取全局鼠标位置,通过信号传递给qwidget调整窗口位置。2.设置鼠标事件穿透,屏蔽窗口的点击事件。5.不显示状态栏图标,使用小图标退出程序。3.绘制半透明背景色。原创 2022-09-20 11:49:53 · 706 阅读 · 0 评论 -
顺序容器vector使用
stl顺序容器vector操作原创 2022-07-09 14:09:08 · 159 阅读 · 0 评论 -
cmake编译遇到的一些问题汇总
windows平台下:1.警告视为错误 解决办法:add_definitions("/WX-")原创 2022-03-11 09:51:46 · 2541 阅读 · 0 评论 -
libjpeg将Mat转换为jpeg数据
void rgb2jpeg(int width, int height, int channels, void* data, unsigned char ** outbuffer, unsigned long * outsize) { jpeg_compress_struct jpeg; jpeg_error_mgr jerr; jpeg.err = jpeg_std_error(&...原创 2019-12-30 14:43:33 · 1012 阅读 · 1 评论 -
Qt实现视频播放功能(支持16路视频)
最近因为工作需要,又要用Qt做个程序的界面实现播放视频的功能,并且需要支持16路视频的播放和检测图片的显示程序具体功能.(一)、播放实时视频,支持分屏(二)、检测视频中的物体并将检测到的物体插入到队列显示到界面上(三)、将获取到的最新的物体信息的相信信息进行展示后续功能将依次列出...原创 2018-03-27 18:45:14 · 3196 阅读 · 1 评论 -
使用live555接受RTSP视频流并通过ffmpeg解码显示
这里直接使用官方的例子接收的视频流,并通过ffmpeg解码显示,如果直接把接受到的数据包,推给ffmpeg解码不成功,需要的接收到的数据进行处理再解码解码显示,具体做法如下: memset(decBuffer, 0, DUMMY_SINK_RECEIVE_BUFFER_SIZE); int nTotalLen = 0; unsigned char start_code[4] = { 0x00,...原创 2018-06-15 15:50:08 · 4738 阅读 · 3 评论 -
使用开源库(OpenCV)实现视频的倒播
直接上代码:#include "opencv2/core/utility.hpp"#include "opencv2/core/ocl.hpp"#include "opencv2/video/tracking.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/videoio.hpp"#include "opencv2/highgui..原创 2018-06-27 13:10:31 · 2103 阅读 · 1 评论 -
TCP实现文件传输升级版
经过思考觉得上次写的那个虽然没有问题但是还是有点不妥,做了一下的修改1.现在发送端发送文件只需要将路径传给发送端,发送库去读文件发送2.接収时,只需要指定个存放路径文件会自动写到指定路径,上次写的那个需要自己读文件推送buffer...原创 2018-06-28 08:06:07 · 1561 阅读 · 0 评论 -
ffmpeg实现视频倒播(基于opencv方法)
前一段时间用opencv实现了视频倒播,闲着没事跑去看了看opencv里的代码实现,发现里边也是用ffmpeg实现的,里边有单独的三个头文件直接考出来,基本上不需要修改,直接调用里边的一个struct,里边有函数直接调用就行了那三个头文件分别是cap_ffmpeg_api.hpp,ffmpeg_codecs.hpp,cap_ffmpeg_impl.hpp别人开源的东西,研究一下还是对自己有...原创 2018-06-29 10:17:02 · 2607 阅读 · 1 评论 -
opencv重新调整图片大小
//1.Mat转化,感觉这是个笨方法,通过转IplImageMat MyResizeImage(Mat pSrc, double dScale){ IplImage *pImgSrc = &IplImage(pSrc); CvSize size; size.width = pImgSrc->width*dScale; size.height =...原创 2018-07-29 13:11:26 · 5608 阅读 · 1 评论 -
Qt使用Opencv库显示图片及遇见问题记录
问题一:Qt默认使用的Debug模式,我编译的库都是Release的所有出现以下函数未定义,比如说一下函数cvtColor imwrite imshow等等, IplImage等C函数好像不受影响 Mat转QPixmapMat ==>QImage ==>QPixmapMat img = imread("E:\\Databases\\picdata\\girls...原创 2018-09-07 07:57:36 · 1128 阅读 · 0 评论 -
使用easylogging++进行日志输出
#include <iostream>#include <fstream>//支持多线程#define ELPP_THREAD_SAFE#include "easylogging++.h"INITIALIZE_EASYLOGGINGPPusing namespace std;int main(int argc, char* argv[]){ st...原创 2018-11-13 11:37:13 · 4293 阅读 · 0 评论 -
VS2015配置OpenCV3.2
配置了半天,备忘,一定要把红框离得东西对应上,刚开始我就直接在主界面上切换x86和x64但是弹框上的没有改变配置了半天x86的搞的一直打不开#include 文件,我把弹框也切换了再配置就好了添加三个文件路径,你的Opencv再哪里安装的去哪里找E:\OpenCV3\opencv\build\include\opencv2E:\OpenCV3\opencv\build\incl原创 2017-07-23 15:26:36 · 443 阅读 · 0 评论