自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 《Single Image Dehazing Based on the Physical Model and MSRCR Algorithm》 阅读笔记与代码复现

《Single Image Dehazing Based on the Physical Model and MSRCR Algorithm》阅读笔记 author:Owen718Jinbao Wang, Ke Lu, Member , IEEE, J i a n X u e , Member , IEEE, Ning He, and Ling Shao, Senior Member , IEEE摘要——针对雾霾天气图像退化问题,提出了一种基于物理模型和图像亮度分量的单幅图像去雾方法,该方法采用多尺度

2021-02-03 00:27:11 653 2

原创 Opencv——基于模板匹配的银行工单数字定位(c++)

#include<iostream>#include <opencv2/opencv.hpp>#include<opencv2\highgui\highgui.hpp>#include<opencv2\core\core.hpp>#include <opencv2\imgproc\imgproc.hpp>#include<math.h>#include<string.h>#include <codecvt

2020-11-27 10:25:20 305

原创 【opencv/pyQt5】图片阈值编辑器/寻色块阈值利器

**定位色块常用到hsv色彩空间下的颜色阈值,笔者曾经用openmv时,其IDE有自带一个阈值编辑器,使用起来非常方便,现在在linux上跑cv算法,需要类似的功能,因此自己写了一个阈值编辑器。 目前暂时只支持HSV色彩空间下的阈值编辑。**代码:mian.py:from threshold_ui import Ui_Widgetfrom PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import QImage,QPixmap,QFon

2020-11-10 22:58:04 1110 2

原创 《水下视频图像清晰化方法》阅读笔记与python复现

本文针对一般水下视频图像清晰化方法使图像失真、噪声放大以及视频播放中相邻帧出现闪烁跳跃等现象,提出了基于颜色空间的单幅水下图像清晰化方法和基于时空信息融合的水下视频清晰化方法简述:鉴于当前大多单幅图像清晰化算法基于局部块先验,清晰化后的图像中仍存在块状效应,研究了基于非局部先验的颜色空间水下图像清晰化方法,对非局部先验的清晰化方法进行改进,以得到更准确的透射率。同时,根据水下图像成像特点,利用暗通道先验与颜色饱和度相结合的方式对水下图像背景光进行修正。关键效果:能较好地消除视频帧播放时的闪烁现象,

2020-08-29 15:55:23 2067 4

原创 error: (-2:Unspecified error) FAILED: fs.is_open(). Can‘t open “res10_300x300_ssd_iter_140000_fp16.“

**在做opencv dnn 人脸检测的时候一直遇到这个问题,翻遍了谷歌、csdn、Stack Overflow,毛都没有。最后自己摸索出来解决方案如下:**1、使用绝对路径2、使用了绝对路径还不行,试试标注下参数,例如:readNetFromCaffe(prototxt="D:\github\Opencv-Algorithm-summary\deploy.prototxt"3、以上方法还是没解决,试试把“\”改为“\\”。笔者这边正常运行的代码:#coding=utf-8import

2020-07-29 23:18:14 4384 4

原创 opencv——haar人脸检测与DNN人脸检测算法demo与性能对比

首先来看下从摄像头视频流中检测人脸的demo:import cv2import numpy as npcap = cv2.VideoCapture(0)def face_detected(img): face_cascade = cv2.CascadeClassifier('D:\python_code\haarcascades\haarcascade_frontalface_alt.xml') #脸部haar特征文件 eye_cascade = cv2.CascadeC

2020-07-28 23:43:43 1106

原创 opencv——分水岭图像分割算法demo思路与应用

原理解释:https://blog.csdn.net/ChangWei_wenzhou/article/details/83583230?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPa

2020-07-28 02:09:34 601

原创 opencv——GrabCut前景检测

GrabCut算法原理:https://blog.csdn.net/zouxy09/article/details/8534954grabCut函数原型:def grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode=None)img为原图像,mask为掩模,bgdModel为前景背景模型,fgdModel为后景背景模型,rect为初始矩形,背景和前景模型都要基于这个矩形所留下的区域来决定。demo:import cv2impo

2020-07-28 00:51:52 276

原创 opencv——StereoSGBM计算视差图算法 使用普通摄像头进行深度估计

该算法使用极几何来计算所谓的视差图,它是对图像中检测到的不同深度的基本表示。这样就能提取出一张图片中的前景部分而抛弃其余部分。首先需要同一物体在不同视角下拍摄的两幅图像,注意是在距物体相同距离拍摄的!否则计算会失败,计算得到的视差图就没有意义了。以下程序使用同一物体的两幅图像来计算视差图,距离摄像头近的点在视差图中会有更明亮的颜色。黑色区域代表两幅图像的差异部分。import numpy as npimport cv2def update(val = 0): stereo.setBlo

2020-07-27 20:57:59 5740 3

原创 opencv-卷积/锐化/边缘检测/模糊滤波器详解

import cv2import numpydef cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows()#边缘检测优化方法 先对图像进行模糊处理,再转为为灰度彩色图像,再使用laplacian检测边缘。此方法可较好的避免将噪声错误地识别为边缘。def strokeEdges(src,dst,blurKsize = 7,edgeKsize = 5): if

2020-07-27 00:34:26 747

原创 opencv——高通滤波器

#高通滤波器#高通滤波器(High Pass Filter,HPF)是检测图像的某个区域,#然后根据像素与周围像素的亮度差值来提升(boost)该像素的亮度的滤波器。#高通滤波器是根据像素与邻近像素的亮度差值来提升该像素的亮度。# 低通滤波器(Low Pass Filter,LPF)则是在像素与周围像素的亮度差值小于一个特定值时,平滑该像素的亮度。# 它主要用于去噪和模糊化,例如,高斯模糊是最常用的模糊滤波器(平滑滤波器)之一,它是一个削弱高频信号强度的低通滤波器。import cv2imp

2020-07-25 23:32:54 3337 2

原创 Easyx——void setcolor(COLORREF color)中的 colorref类型

一、什么是COLORREF?  COLORREF类型用来描绘一个RGB颜色。其定义如下:  typedef DWORD COLORREF;  typedef DWORD *LPCOLORREF;  COLORREF类型变量值描绘一个颜色时对应于下面16进制的格式:  0x00bbggrr  可以用这样一个结构体来描述。RGB_value struct  {  byte unuse...

2020-07-19 23:42:46 2305

原创 c语言——easyx实现飘雪花效果

首先,需要设定雪花在一个窗口中的总数目,这个关系到雪花的空间密度。假定有20个雪花。就需要两个数组,分别为x[20] y[20]来分别记录x坐标和y坐标。通过自定义一个函数来初始化雪花的位置。这里需要用到随机数的相关知识。其次,如果当雪花落下时,在雪花落的位置画一个雪花,模拟雪花残留在地面上。当雪花的y坐标达到画布上限时,令其为0,再重新初始化x坐标,即可实现雪花的连续随机飘落。下面是代码:...

2020-07-19 23:42:13 2109 2

原创 opencv——特征匹配 SIFT demo应用与函数详解

注意opencv版本为opencv-contrib-python 3.4.2.17opencv-python 3.4.2.17由于专利版权问题,opencv内置的SIFT算法在3.4.3及以上版本中无法使用。mport cv2import numpy as npimg1 = cv2.imread(r'C:\Users\Owen\Pictures\box.png')img2 = cv2.imread(r'C:\Users\Ow

2020-07-19 23:41:27 1829

原创 multisim 示波器显示电流变化波形

使用电流互感器串到bai电路里面,du将电流转换成电压值,再使用示波器测量电流zhi互感器的电压值即可,dao默认电阻为1欧姆,所以是1:1反应电流波形的,Place——Component——Sources——CONTROLLED_VOLTAGE_SOURCES——CURRENT_CONTROLLED_VOLTAGE_SOURCE...

2020-06-09 22:20:49 9337

原创 电路分析——向量法

复数共四种形式,结合欧拉公式变换,其实就三种形式。他们分别是:结合欧拉公式,其实就是四种了,欧拉公式:可得:欧拉公式的证明:幅值:相角:复数的运算复数相加(或相减)就是直接将它们的实部和虚部分别相加(或相减)进行:在图形上,这个过程等同于两个矢量相加(或相减)的平行四边形定律(phasor)两个复数相乘可以将一个复数的每个部分乘以第二个复数的各个部分,然后将四个乘积相加,得到最终的值。在图形上,这个过程与矢量的内积并不相同,如果将每个复数看成复平面(实轴与虚轴组成)上的矢.

2020-06-08 23:59:45 13600 2

原创 python---windows获取计算机盘符

import psutil,redisk = str(psutil.disk_partitions())disk_device = r'device'for i in re.finditer('device', disk): #print(i.span()) start = i.span()[1] + 2 #盘符字符串起始位置 end = i.span()[1] + 4 #盘符字符串终止位置 print(disk[start:end])...

2020-06-02 19:42:13 939

原创 Qt——QMessageBox类详解

QMessageBox类提供了一个模式对话框,用于通知用户或询问用户问题并接收答案。我们先来看下QMessageBox::information函数的使用:其原型:[static] int QMessageBox::information(QWidget *parent, const QString &title, const QString &text, int button0, int button1 = 0, int button2 = 0)parent是父组件指

2020-05-19 14:13:16 7779

原创 STM32---PWM控制详解

#include "sys.h"/** 定时器3,可产生四路的PWM输出,四个通道分别对应的引脚情况如下 TIM3_CH1,TIM3_CH2,TIM3_CH3,TIM3_CH4 没有重映像的对应情况: PA6,PA7,PB0,PB1 部分重映像: PB4,PB5,PB0,PB1 完全重映像: PC6,PC7,PC8,PC9 当我们的IO口不仅仅是做普通的输入输出使用的时...

2020-04-21 20:15:46 2666 2

原创 stm32系列芯片独立看门狗(IWDG)溢出时间计算原理

首先看下计算公式: m3: Tout=(4*2^prer)*rlr / 40Tout是最终的式子,要弄清楚式子中的各成员的含义,就要从根源开始推倒和理解。首先是溢出时间Tout=(IWDG_RLR寄存器对应的装载数值)*(看门狗时钟的周期)即:Tout=(IWDG_RLR寄存器对应的装载数值)*(看门狗时钟的周期)IWDG_RLR寄存器:其中,看门狗时钟周期=1/freq,fr...

2020-04-20 21:07:20 9131 3

原创 STM32——GPIO配置

STM32 的 IO 口相比 51 而言要复杂得多,所以使用起来也困难很多。首先 STM32 的 IO 口可以由软件配置成如下 8 种模式:1、输入浮空2、输入上拉3、输入下拉4、模拟输入5、开漏输出6、推挽输出7、推挽式复用功能8、开漏复用功能IO的使用分为:普通IO功能使用 and IO复用普通io,看输入还是输出复用,直接设置为复用即可输入:分为输入浮空,输入上...

2020-04-07 23:32:35 1392

原创 关于stm32f10x系列芯片的ST-link烧录注意事项

本人发现网上关于这块的资料对新手十分的不友好。下面进行说明和总结。st-link烧入器:另一种另一种样子的烧入器:第一,两种烧录模式:jtag和sw模式推荐使用sw模式,可以仅仅使用两条线。下面来进行说明。sw模式,接线说明:1脚 连接 开发板上的 tvcc (3.3v)20脚 连接 GND (接地,负极)7脚 连接 SWIO (PA13)9脚连接 SWCLK (P...

2020-04-07 22:05:13 1317

原创 Openmv初探——开启图像

import sensor #import the sensor#the settings of camerasensor.reset() #startup the sensorsensor.set_pixformat(sensor.RGB565) #set colorsensor.set_framesize(sensor.QVGA) #set sizesensor.skip_fram...

2020-03-24 14:44:25 7276

原创 Python学习笔记——输入输出与if语句

一,python中语句块是根据缩进和空格进行区分,需要遇到if和while循环等需要非常注意缩进。二,input获取的是一个str,不是int,不可直接比较,需要使用b= int(a)三,注意list的赋值,用的是中括号不是大括号。...

2020-03-24 14:38:28 201

原创 Python error: unindent does not match any outer indentation level

Python语法要求在一份运行代码中的所有for,if/else的语句’:'的下一行要统一缩进量(有’一个制表符(TAB键)‘,’两个空格‘,和’三个空格‘可以选择)如果缩进量不统一(比如TAB键和四个空格混用),则程序便会报错IndentationError: unindent does not match any outer indentation level(缩进不匹配任何外在的缩进级别)...

2020-03-24 00:02:26 772

原创 编译原理 最新版 (龙书) 简介and sources

本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。本书是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的...

2020-02-23 19:58:47 916

原创 c++primer plus 第六版 中文版 简介and资源

链接:https://pan.baidu.com/s/1ZlFbOT3MFVIq5hiaTGI3Ug 提取码:hpdi

2020-02-18 16:36:01 674

原创 3D游戏 卷2 动画与高级实时渲染技术 pdf简介and资源

链接:https://pan.baidu.com/s/1rK6gKMYkhYsDED8LU_AahQ 提取码:8hcb

2020-02-18 16:34:30 278 1

转载 c++——ignore()函数

cin.ignore()函数是C++标准输入流(cin)中的一个方法。cin.ignore()函数中有两个参数,分别为数值型的a 和 字符型的 ch ,即cin.ignore( a, ch )。它表示从输入流 cin 中提取字符,提取的字符被忽略,不被使用。而每抛弃一个字符,它都要进行计数和比较字符:如果计数值达到 a 或者被抛弃的字符是 ch ,则cin.ignore() 函数执行终止;否则,它...

2020-02-08 16:54:11 8561

原创 c++----stringstream

sstream头文件定义了三个类型来支持内存IO,istringstream从string中读取数据,ostringstream向string写入数据,而头文件stringstream既可以从string读数据也可向string写数据。stringstream 对象用于输入一行字符串,以 空格 为分隔符把该行分隔开来 。#include <iostream>#includ...

2020-02-08 16:18:53 115

原创 UVA 10815 安迪的第一个字典——c++ set的应用

set就是数学上的集合,每个元素最多只出现一次。和sort一样,自定义类型也可以构造set,但同样必须定义“小于”运算符。以下是该题的代码:由于string已经定义了“小于”运算符,因此直接使用set保存单词集合即可。注意,输入时把所有非字母的字符变成空格,然后利用stringstream得到各个单词即可。#include <iostream>#include <stri...

2020-02-08 15:09:49 188

原创 c++----sort、lower_bound和vector

经常将sort与lower_bound配合使用。#include <iostream>#include <algorithm>using namespace std;int main(){ int a[100]; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> ...

2020-02-07 17:38:03 309

原创 洛谷----P1579 哥德巴赫猜想(升级版)

这题其实如果会用埃拉托斯特尼筛法,其实非常简单。关于埃氏筛法,看我的这篇博客:洛谷p1217—回文质数埃氏筛法的核心思想其实就是一个质数的任意倍必然不是质数。那么我们先建立一个表格,把0-20000之间的数全部判断好,之后直接调用这个bool型的表就可以啦。代码很简单:#include <iostream>#include <cstring>#define MAX ...

2020-01-29 23:30:48 311

原创 洛谷P1478 陶陶摘苹果(升级版)---枚举法

#include <iostream>using namespace std;int main(){ int n, s, a, b; int x[5005] = {}; int y[5005] = {}; int v[5005]; for (int i = 0; i < 5005; i++) { v[i] = 1; } int minn = 1e9; ...

2020-01-20 19:40:50 190

原创 P1217 [USACO1.5]回文质数 Prime Palindromes

判断回文质数的方法有多种,刚开始我是用纯数学方法来判断~来看代码:#include <iostream>using namespace std;bool is_prime(long x) //判断质数{ for (long i = 2; i*i <= x; i++) { if (x%i == 0) return 0; } return 1;}boo...

2020-01-20 13:57:50 664

原创 洛谷p1028----数的计算:记忆化递归解法

这题卡了好久喔,发下自己的思路吧。首先这样想,设原数n,那么可以对n进行分解,怎么分解呢?看图:可以看到,将数进行分解,奇数项对应的值和小于该奇数项的最大偶数项对应的值是一样的,即若n为奇数f[n]=f[n-1],同时,若n为偶数,那么f[n]=f[n-1]+f[n/2];PS:分解完还要记得算上原数!原数也算一个!f[1]=1;f[2]=f[1]+1=2f[3]=f[2]=f...

2020-01-19 12:40:56 246

转载 结构体定义 typedef struct 用法详解和用法小结

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n;若用typedef,可以这样写:typedef struct node{}NODE; 。在申请变量时就可以这样写:NODE n;其实就相当于 NODE 是node 的...

2020-01-17 21:22:42 389

转载 C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))

C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include using name...

2020-01-17 00:12:36 129

原创 落谷P1008

#include <cstdio>int main(){ int a,b,c; for (a=123;a<333;a++) { b=2*a; c=3*a; if (a/100+a/10%10+a%10+b/100+b/10%10+b%10+c/100+c/10%10+c%10) if ((a/100)*(a/10%10)*(a%10)*(b/...

2020-01-12 19:13:11 92

原创 洛谷P1009一种简单的暴力解法

```c#include <stdio.h>int main(){ int number; //总共要买的铅笔数 int a[3][2]; //存储铅笔类型和价格的数组 int sum[3]; //每种铅笔所需的总金额 int n=1; //每种铅笔所需的数目 int min_money; //最小金额 int i,k; scanf("%d",&...

2020-01-12 19:06:44 255

json串口通信.zip

核心板:stm32f103rct6。演示了如何在stm32中调用json库从而打包和发送数据包。简单易懂方便初学者进行学习。

2020-04-26

stm32小车 - 蓝牙控制测试成功.zip

stm32蓝牙控制的麦轮小车。简单易懂,方便学习。适合初学者掌握基础的stm32开发知识。与蓝牙模块进行串口通信,简单易懂。使用L298N电机驱动板,四个麦轮。核心MCU型号:STM32F103RC

2020-04-26

空空如也

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

TA关注的人

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