
OpenCV
文章平均质量分 54
opencv学习
coder_Alger
进击的coder
展开
-
C++手写均值滤波算法
均值滤波算法C++自实现原创 2022-07-06 23:29:26 · 1995 阅读 · 0 评论 -
数字图像处理 (c++ opencv):通过鼠标点击操作获取图像的像素坐标和像素值
通过鼠标点击操作获取图像的像素坐标和像素值原创 2022-07-11 23:31:46 · 2780 阅读 · 0 评论 -
C++ 使用 OpenCV 实现证件照蓝底换成白底功能(或其他颜色如红色)详解
C++ 使用 OpenCV 实现证件照蓝底换成白底功能(或其他颜色如红色)详解原创 2022-06-30 21:24:30 · 1952 阅读 · 0 评论 -
opencv绘制形状
绘制圆API:circle(img0, Point(200, 200), 50, Scalar(255, 0, 0),2);#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){ Mat img0(400,400,CV_8UC3,Scalar(100,100,100)); circle(img0, Point.原创 2021-07-16 10:55:38 · 241 阅读 · 2 评论 -
OpenCV 利用高斯模糊实现简单的磨皮美颜效果
1、高斯模糊首先高斯指的是高斯函数,这个我想大家应该都知道,是一种非常常见的概率分布函数。大概就长这样吧。通过均值模糊类比,我们可以大胆的猜出来高斯模糊的含义:每一次需要处理的像素矩阵中不同地方的像素的值在最后的赋值像素的占比是不一样的。这个占比是按照高斯函数所分布的。也就是说,越是远离中心像素的像素所占比重就更少,而中心像素值在赋值像素中的比重是最重的。或者说,我们知道之前均值模糊所乘以的矩阵是而高斯模糊中所乘的 3*3 矩阵可以是这样的可视化后就是这样的..原创 2022-04-26 09:22:45 · 1309 阅读 · 0 评论 -
opencv之形状检测(一)
霍夫线变换的思想是:霍夫线变换必须应用在二值图像上,它认为图像上每一个点都有可能是某条直线上的一个点,对过每点的所有直线进行投票,根据设定的权重做最终的判断,这个是霍夫线变换的理论基础。OpenCV 4 提供了检测图像边缘是否存在直线和圆形的检测算法直线检测霍夫直线变换霍夫变换中存在的两个重要的结论(1)图像空间中的每条直线在参数空间中都对应着单独一个点来表示。(2)图像空间中的直线上任何像素点在参数空间对应的直线相交于同一个点。上图给出了第(2)个结论的示意图。因此通过霍.原创 2021-07-13 09:51:44 · 1153 阅读 · 0 评论 -
访问图像中的像素
颜色空间缩减做法:将现有的颜色空间值除以某个输入值,以获得较小的颜色数,也就是 "做减法" , 比如颜色0到9可以取为新值0,10到19可以取为10,依次类推因此,我们可以推断,颜色空间缩减,即是按照某种算法,缩减颜色空间颜色空间缩减算法 (1)遍历图像矩阵的每一个像素 (2)对像素应用算法公式举个栗子:我们将图像的值由256^3压缩至4^3,即将RGB的值只取 32, 96, 160, 224。这被称作色彩量化。#include <iostream...原创 2021-07-12 22:30:58 · 185 阅读 · 4 评论 -
使用动态地址运算配合 at 访问元素
案例程序:颜色缩减#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;void colorReduce(Mat& inputImage,Mat& outputImage,int div);int main(){ Mat img = imread("flower.jpg"); if (img.empty()) { .原创 2021-07-10 16:56:01 · 121 阅读 · 0 评论 -
opencv常用的数据结构和函数
思维导图cvtColor () 函数标识符(OpenCV2 版)cvtColor () 函数标识符(OpenCV3 版)注意:OpenCV 通道存储顺序是 BGR ,蓝绿红,不是 RGBPoint 类cv::Point 类是两到三个原语类型的容器,其成员是通过变量名称 x、y、z 访问的,而不是通过下标访问。Point 类是通过自己的模板派生来的,这是一个基础模板;实际上由两个这样的模板,分别是给二维、三维的点提供的。这些类的实例有 cv::Point2i、cv:...原创 2021-07-10 16:34:23 · 129 阅读 · 0 评论 -
Rect函数详解
基本概念:Rect(int x, int y, int width, int height);参数含义:Rect(左上角 x 坐标 , 左上角 y 坐标,矩形的宽,矩形的高)例如:下图 Rect (20,50,30,40),那对于 Rect (20,50,30,40) 有哪些常用的操作?rect.area (); // 返回面积,1200rect.size ();// 返回尺寸,30x40rect.tl ();// 返回左上角坐标 (20,50)rect.b...原创 2021-07-10 15:29:54 · 49219 阅读 · 3 评论 -
opencv宏的详解
OpenCV 模块按宏定义顺序介绍【calib3d】—— 其实就是就是 Calibration(校准)加 3D 这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容。基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D 信息的重建等等。【contrib】—— 也就是 Contributed/Experimental Stuf 的缩写, 该模块包含了一些最近添加的不太稳定的可选功能,不用去多管。2.4.8 里的这个模块有新型人脸识别,立体匹配,人工视网膜模型等技术。原创 2021-07-10 15:20:45 · 335 阅读 · 0 评论 -
图像的几何变换
几何变换学习目标掌握图像的缩放,平移,旋转等 了解数字图像的仿射变换和透射变换1 图像缩放缩放是对图像的大小进行调整,即使图像放大或缩小。 API cv2.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR) 参数: src : 输入图像 dsize: 绝对尺寸,直接指定调整后图像的大小 fx,fy: 相对尺寸,将dsize设置为None,然后将fx和fy设置为比例因子原创 2021-07-10 15:06:58 · 500 阅读 · 0 评论 -
图像滤波
简介滤波实际上是信号处理的一个概念,图像可以看成一个二维信号,其中像素点灰度值的高低代表信号的强弱 高频:图像中变化剧烈的部分 低频:图像中变化缓慢,平坦的部分 根据图像高低频特性,设置高通和低通滤波器。高通滤波可以检测图像中尖锐变化明显的地方,低通滤波可以让图像变得平滑,消除噪声干扰 图像滤波是OpenCV图像处理的重要部分,在图像预处理方面应用广泛, 图像滤波的好坏决定着后续处理的结果好坏 图像滤波函数方法: 线性滤波:方框滤波、均值滤波、高斯滤波 非线性滤波:中值滤波、双边滤波原创 2021-04-26 16:53:00 · 456 阅读 · 0 评论 -
ROI与mask掩码
目录感兴趣区域ROImask--掩码/掩膜操作(8位单通道图像,灰度图或者二值图)感兴趣区域ROI#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;void main(){ Mat img = imread("1.jpg"); Mat imgROI1 = img(Rect(20, 20, 200, 200));//Rect 起原创 2021-04-24 15:13:04 · 797 阅读 · 0 评论 -
图像的几何变换
目录图像的缩放图像的平移图像的旋转图像的转置图像重映射图像的缩放图像的缩放需要用到API--resize()Mat srcImg = imread("lena.jpg");Mat dstImg1,dstImg2;//实现图像的缩小放大,放大存在失真resize(srcImg, dstImg, Size(300,300));图像的平移图像平移--不改变大小,信息丢失图像不完整//图像平移--不改变大小,信息丢失图像不完整Mat imgTranslat.原创 2021-04-24 15:00:34 · 243 阅读 · 0 评论