自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 python面向对象

面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员: 类变量或者实例变量, 用于处理类及其实例对象的相关的数据。方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

2024-07-11 15:49:45 259

原创 python2

迭代器与生成器迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。和。字符串,列表或元组对象都可用于创建迭代器。# 实例 1it = iter(list) # 创建迭代器对象print (next(it)) # 输出迭代器的下一个元素。

2024-07-11 11:31:02 719

原创 python语法

:注释""" """ :多行注释\n :换行python最具特色的就是使用缩进来表示代码块。python的数据类型有:字符串str、整型int、浮点型float ,列表、元组、字典、布尔型01等等导入包(库)在 python 用 import 或者 from…import 来导入相应的模块。将整个模块(somemodule)导入,格式为: import somemodule从某个模块中导入某个函数,格式为: from somemodule import somefunction。

2024-07-11 10:39:35 752

原创 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。输入:matrix =[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target = 5输出:true方法一:暴力解法:遍历二维数组class Solution { public boolean searchM

2021-12-11 18:44:07 176

原创 多数元素-求众数

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素输入:[3,2,3]输出:3输入:[2,2,1,1,1,2,2]输出:2分析:首先注意关键词,题目中说到多数元素是指数组中超过一半的元素。那么对其进行排序,则中间的数就是多数元素的值。所以方法一:直接对其排序,然后找到中间的数即可。class Solution { public int majorityElement

2021-12-10 13:33:00 191

原创 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗输入: [2,2,1]输出: 1异或还可以用于交换两个元素的位置,而且不用多余的空间。可以代替temp,swap方法。a =a^b;b=a^b;a=a^b;用这三个语句可以代替swap方法:方法一:最优方法:这里利用异或的原理,a ^a=0 ; a ^0 =a;异或具有交换律;两个相同的值异或后还是自己。

2021-12-09 18:17:09 643

原创 翻转字符串中的单词

给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例 1:输入:s = “the sky is blue”输出:“blue is sky the”示例 2:输入:s = " hello world

2021-12-07 14:35:25 120

原创 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a” 输出:“a”示例 4:输入:s = “ac” 输出:“a”//方法一:中心扩展法基本思路:从某个元素开始,左右两边探索是否符合回文数并返回回文数的长度,比较并保存最长起始坐标和长度;注意:回文数奇偶情况时间复杂度:O(N^2) 空间复杂度:

2021-12-06 20:57:00 283

原创 字符串最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”] 输出:""解释:输入不存在公共前缀。本文用到的方法:1,charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。语法:public char charAt(int index)index

2021-12-04 21:13:43 137

原创 【无标题】

编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]每次找到等于零的那一个把对应的行和列都置零即可,但是会出现一个问题就是到最后所有的元素都变成零了;因此,既然打算将整行

2021-12-02 20:35:50 108

原创 旋转矩阵-二维矩阵

【LeetCode】旋转矩阵(原地选择+翻转两种方法,java实现)class Solution { public void rotate(int[][] matrix) { int n=matrix.length; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ int temp =matrix[i][j];

2021-12-02 10:58:07 498

原创 opencv八种跟踪算法

这八种算法包括:BOOSTING Tracker:和Haar cascades(AdaBoost)背后所用的机器学习算法相同,但是距其诞生已有十多年了。这一追踪器速度较慢,并且表现不好,但是作为元老还是有必要提及的。(最低支持OpenCV 3.0.0)MIL Tracker:比上一个追踪器更精确,但是失败率比较高。(最低支持OpenCV 3.0.0)KCF Tracker:比BOOSTING和MIL都快,但是在有遮挡的情况下表现不佳。(最低支持OpenCV 3.1.0)CSRT Tracker:比K

2021-09-15 19:16:43 1698

原创 视频背景替换

#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;Mat replace_and_blend(Mat& frame, Mat& mask);Mat background_01;Mat background_02;int main(int argc, char** argv) { // start here... backg

2021-08-30 16:10:23 142

原创 opencv-分水岭分割方法

分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特征。Opencv 中 watershed函数原型:void watershed( InputArray image, InputOutputArray markers );第一个参数 image,必须是一个8bit 3通道彩色图像矩阵序列,第一个参数没什么要说的。关键是第二个参数 markers:大意

2021-08-30 13:40:08 353

原创 图像分割——GMM

GMM(高斯混合模型方法)GMM即高斯混合模型,GMM加上贝叶斯就能对图像进行分割。在说高斯混合模型之前,得先认识单高斯模型,即高斯分布(正态分布),由图可知,以某个点为例,它的高斯分布含义:离该点越近其权重越大影响越大,越远其权重越小影响越小,中心点的大小要受到周围点的影响。比如 5 _ 10 _ _ 6,以10为中心点的高斯分布,_代表距离,因为5离10更近,权值更大,设为0.8,则5变成50.8=4。因为6离10更远,权值更小,设为0.4,则6变成60.4=2.4。对于GMM高斯混合模型:图

2021-08-29 16:36:25 1398

原创 2021-08-29图像分割_kmean

Kmeans方法#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int main() { Mat src, dst, gray_src; src = imread("D:/b.jpeg"); if (src.empty()) { printf("could not load image...\n"); return -1; }

2021-08-29 13:52:35 131

原创 级联分类器的训练

级联分类器训练步骤

2021-08-29 11:18:58 113

原创 2021-08-28人脸检测与眼睛跟踪

#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;String facefile = "D:/vs/opencv/build/etc/haarcascades/haarcascade_frontalface_alt.xml";String lefteyefile = "D:/vs/opencv/build/etc/haarcascades/haa.

2021-08-28 17:00:48 157

原创 Haar和LBP级联分类器

//图片识别#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;String fileName = "D:/D:/vs/opencv/build/etc/haarcascades/haarcascade_frontalface_alt.xml";CascadeClassifier face_classifier;int main(int a..

2021-08-28 14:37:27 244

原创 opencv案例

切边#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace cv;using namespace std;Mat src, gray_src, dst;int threshold_value = 100;int max_level = 255;const char* output_win = "Contours Result";const

2021-08-27 16:05:14 729

原创 2021-08-25特征描述子与匹配,Flann特征匹配

积分图像#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;int main(int argc, char** argv) { Mat src = imread("D:/1.jpg", IMREAD_GRAYSCALE); if (src.empty()) { printf("could not load image...\n"); return -1; } namedWin

2021-08-26 11:47:02 198

原创 HOG特征检测,LBP特征

HOG特征#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int main() { Mat src, dst,dst_gray; src = imread("D:/2.jfif"); if (src.empty()) { printf("could not load image..."); return -1; } namedW

2021-08-25 13:17:46 113

原创 2021-08-24SURF特征检测

SURF和SIFT特征检测区别SURFSURF(Speeded Up Robust Features)是对SIFT的一种改进,主要特点是快速。SURF与SIFT主要有以下几点不同处理:1、 SIFT在构造DOG金字塔以及求DOG局部空间极值比较耗时,SURF的改进是使用Hessian矩阵变换图像,极值的检测只需计算Hessian矩阵行列式,作为进一步优化,使用一个简单的方程可以求出Hessian行列式近似值,使用盒状模糊滤波(box blur)求高斯模糊近似值。2、 SURF不使用降采样,通过保持图

2021-08-25 11:22:24 142

原创 2021-08-24亚像素角点检测

亚像素级别角点检测角点检测点精确到float型,使得检测结果更加精确。可用于目标跟踪,三维重建,相机矫正opencv中的goodFeaturesToTrack函数可以计算Harris角点和shi-tomasi角点,但默认情况下计算的是shi-tomasi角点,函数原型如下:void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners,int maxCorners, double qualityLevel, doubl

2021-08-24 19:03:29 400

原创 oepncv特征提取与检测-Harris,shifTomasi,自定义角点检测

Harris角点检测

2021-08-24 13:57:22 192

原创 opencv-视频中移动对象统计

#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char**) { VideoCapture capture; capture.open("D:/wv_demo.mp4"); if (!capture.isOpened()) { printf("could not load video data...

2021-08-23 15:02:17 125

原创 opencv-CAMshift对象跟踪

MeanShift算法介绍CAMshift跟踪算法介绍我们通常会传递直方图反投影图像和初始目标位置。当对象移动时,显然该移动会反映在直方图反投影图像中。结果,meanshift算法将窗口移动到最大密度的新位置。连续自适应的Meanshift跟踪算法窗口尺寸自动变化适合变形目标检测代码演示#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namesp

2021-08-23 14:16:37 113

原创 opencv-基于光流的对象跟踪

基本原理光流是由物体或照相机的运动引起的两个连续帧之间图像物体的视运动的模式。它是2D向量场,其中每个向量都是位移向量,表示点从第一帧到第二帧的运动。光流在以下领域具有许多应用: - 运动的结构 - 视频压缩 - 视频稳定…稀疏光流KLT限制: 1. 亮度恒定 2.缓慢移动 3.空间一致性操作步骤:输入第一帧图片,利用harris特征检测进行特征点检测,通过特征点进行的跟踪。稠密光流HF步骤:不会再去寻找特征点,直接读取两帧图片,然后图片对比,寻找差异,将所有移动的点用多项式表达出来。

2021-08-23 11:53:30 355

原创 opencv-基于颜色目标检测与跟踪

利用颜色范围过滤InRange过滤形态学提取轮廓查找外接矩形查找位置确定与标定#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Rect roi;void processFrame(Mat &binary,Rect &rect);int main(){//读取视频 VideoCapture capture; ca

2021-08-22 13:49:56 342

原创 2021-08-21opencv-BS背景消除建模

/*#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char** argv) { //VideoCapture capture; //capture.open("D:/vcprojects/images/video_006.mp4"); VideoCapture capture(0); if (!ca

2021-08-21 21:12:44 100

原创 2021-08-21牛人博客

牛人博客1、小魏的修行路 http://blog.youkuaiyun.com/xiaowei_cqu2、晨宇思远(邹宇华 北京航空航天大学) http://blog.youkuaiyun.com/chenyusiyuan3、Rachel Zhang(张睿卿)的博客 http://blog.youkuaiyun.com/abcjennifer4、zouxy09(邹晓艺) 华南理工大学 http://blog.youkuaiyun.com/zouxy09 (深度学习,图像分割,Kinect开发学习,压缩感知)5、爱CVPR http://b

2021-08-21 20:36:01 170

原创 2021-08-20opencv-基于距离变换与分水岭的图像分割

基于距离变换与分水岭的图像分割#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Mat src, dst;int main() { src = imread("D:/d.png"); if(src.empty()){ printf("could not load image"); return -1; } imshow("i

2021-08-20 16:49:31 75

原创 2021-08-20opencv-图像矩,点多边形

图像矩moments:计算生成数据。点多边形

2021-08-20 13:02:55 64

原创 2021-08-19opencv-基于轮廓绘制矩形

轮廓周围绘制矩形#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;int threshold_value = 50;int threshold_max = 255;Mat src, dst;const char* output = "output_image";void contours_demo(int,void*);RNG rng;

2021-08-20 00:16:03 321

原创 2021-08-19opencv-凸包

凸包(在轮廓发现的基础上)#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;Mat src, dst;int threshold_value = 50;int threshold_max = 255;const char* output = "output_image";void convexHull_demo(int, void*);

2021-08-19 20:21:00 85

原创 2021-08-19opencv-轮廓发现

opencv-轮廓发现#include<opencv2/opencv.hpp>#include<iostream>#include<math.h>using namespace cv;using namespace std;int threshold_value = 100;int threshold_max = 255;Mat src, dst;const char* output = "findcontours-demo";void Dem

2021-08-19 19:02:37 92

原创 2021-08-18opencv-python视频入门

视频读入:VideoCaptureimport numpy as npimport cv2 as cvcap = cv.VideoCapture(0)if not cap.isOpened(): print("Cannot open camera") exit()while True: # 逐帧捕获 ret, frame = cap.read() # 如果正确读取帧,ret为True if not ret: print("Can't

2021-08-18 20:36:49 108

原创 2021-08-18opencv 图像缩放,旋转

图像缩放//图像缩放#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv; int main(){ //Mat image = imread("F:\\opencvpy\\opencvcpp\\pic\\0.jpg",CV_LOAD_IMAGE_GRAYSCALE); //存放自己图像的路径 Mat image = imread("F:\\o

2021-08-18 14:32:40 709

原创 2021-08-17opencv 图像卷积

自定义线性滤波卷积是图像处理中一个操作,是kernel(掩膜)在图像的每个像素上的操作。Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor point)把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。Robert算子#include "cv.hpp"#include<iostream>#include<ctime>#include<random>using nam

2021-08-18 11:15:53 94

原创 2021-08-17 opencv c++学习笔记

opencv学习教程加载图像(用cv::imread)修改图像色彩空间 (cv::cvtColor)保存图像(cv::imwrite)Matcv::Mat::Mat构造函数图像混合调整图像亮度与对比度绘制形状与文字模糊原理膨胀与腐蚀采样加载图像(用cv::imread)imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称(绝对名称);第二个参数,表示加载的图像是什么类型,支持常见的三个参数值IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变IM

2021-08-17 23:17:23 345

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除