- 博客(38)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 红外小目标:DNANet网络结构与模型搭建
考虑到红外小目标的小的特性,作者设计了一个专门的模块来提取深层特征的同时维护深层小目标的表示。
2022-08-25 16:35:44
9585
12
原创 图像的表示与通道数问题、读取并展示图片、cv2.imread(filename, flags=None)
图像的表示与通道数问题、读取并展示图片、cv2.imread(filename, flags=None)
2022-08-23 09:36:31
2081
原创 OSError: image file is truncated与PIL.UnidentifiedImageError: cannot identify image file的解决方案
错误OSError: image file is truncated,又或者是PIL.UnidentifiedImageError: cannot identify image file的解决方案。
2022-08-23 00:25:15
2789
原创 红外小目标:AGPCNet网络结构与模型搭建
红外小目标探测是对地观测、军事侦察、救灾等诸多领域的重要课题,近年来受到广泛关注。提出了一种注意力引导的金字塔上下文网络(AGPCNet)算法。它的主要组成部分是注意引导上下文块(AGCB)、上下文金字塔模块(CPM)和非对称融合模块(AFM)。AGCB将特征映射划分为补丁计算局部关联,并使用全局上下文关注(Global Context Attention, GCA)计算语义之间的全局关联,CPM集成多尺度AGCBs的特征,AFM从特征融合的角度集成底层语义和深层语义,提高特征的利用率。实验结果表明,A..
2022-08-18 16:42:40
4066
5
原创 opencv-python学习(十七):直线检测
报错:TypeError: ‘NoneType’ object is not iterable原因:阈值过高导致lines=None,也就是说输入的图片很难检测到直线def line_image(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) lines = cv.HoughLines(edges, 1, np.pi/180,
2021-07-26 18:16:53
413
原创 opencv-python学习(十六):Canny边缘检测算法
def edge_image(image): blurred = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(blurred, cv.COLOR_RGB2GRAY) xgrad = cv.Sobel(gray, cv.CV_16SC1, 1, 0) ygrad = cv.Sobel(gray, cv.CV_16SC1, 0, 1) edge_output = cv.Canny(xgrad, ygrad, 5
2021-07-26 17:27:58
309
原创 opencv-python学习(十五):图像梯度
1、索贝尔算子def sobel_image(image): grad_x = cv.Sobel(image, cv.CV_32F, 1, 0) # x方向导数 grad_y = cv.Sobel(image, cv.CV_32F, 0, 1) # y方向导数 gradx = cv.convertScaleAbs(grad_x) grady = cv.convertScaleAbs(grad_y) cv.imshow("xDireaction", gradx)
2021-07-26 17:25:57
309
转载 opencv-python学习(十四):高斯金字塔和拉普拉斯金字塔
要求:拉普拉斯金字塔时,图像大小必须是2的n次方*2的n次方,不然会报错def pyramid_image(image): level = 3 # 金字塔的层数 temp = image.copy() #拷贝图像 pyramid_image = [] for i in range(level): dst = cv.pyrDown(temp) pyramid_image.append(dst) cv.imshow('gaosij
2021-07-26 16:27:07
181
原创 opencv-python学习(十三):图像二值化
图像的二值化:就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。基于图像的直方图来实现的,0白色 1黑色一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)...
2021-07-20 17:21:51
1000
1
原创 python操作mysql
先安装pymysql包,PyCharm很方便可以安装连接数据库#引入安装好的pymysql包import pymysql# 打开数据库连接,不需要指定数据库,因为需要创建数据库conn = pymysql.connect(host='localhost', user="root", password="579041", database="db_python", charset="utf8")# 获取游标cursor=conn.cursor()创建db_python数据库#
2021-07-19 17:56:05
135
原创 opencv-python学习(十二):模板匹配
十二、模板匹配模板匹配:通俗讲就是以图找图,通过图中的一部分来找它在图中的位置执行模板匹配,采用的匹配方式有三种cv.TM_SQDIFF_NORMED:用两者的平方差来匹配,最好的匹配值为0;cv.TM_CCORR_NORMED:用两者的乘积匹配,数值越大表明匹配程度越好,cv.TM_CCOEFF_NORMED:用两者的相关系数匹配,1表示完美的匹配,-1表示最差的匹配代码如下:# 引入包import cv2 as cvimport numpy as npdef template_
2021-07-16 16:26:10
439
原创 opencv-python学习(十一):图像直方图
一、安装matplotlib 在cmd环境下,按照自己安装的python位置进入Scripts目录下,输入命令:pip install matplotlib或者在pyCharm中安装包二、绘出图片的直方图代码如下:import cv2 as cvfrom matplotlib import pyplot as pltdef hist_image(image): color = ("blue", "green", "red") for i, color in enume
2021-07-16 16:21:36
161
原创 微信小程序:用wxs进行过滤处理
WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致新建一个filter.wxs文件var unit = { // 将分转为元并保留两位小数 moneyFilter: function (val) { if (!val) return val /= 100; return val.toFixed(2); }, // 对手机号进行星号处理 phoneFilter: f
2021-07-08 14:25:49
701
原创 微信小程序:生成自定义海报并保存到本地和生成带logo和Id的二维码
这周做项目的时候分到一个新的需求说要生成一张海报,用户保存图片到本地分享而且对二维码有要求:生成一个小程序码和一个二维码,且生成的二维码需要带有用户ID完成后有空闲时间分享出来代码如下:import QRCode from '../../utils/plugins/weapp-qrcode.js' Page({ /** * 生成二维码: * 生成带参数id的二维码,由app端用户扫码,app获取参数 * 生成小程序码,用户扫码进入指定小程序页面 */ data:
2021-07-08 14:13:00
1763
原创 理解图像卷积操作的意义
图像卷积的理解数字图像处理中卷积边界补充问题数字图像处理中卷积数字图像是一个二维的离散信号,对数字图像做卷积操作,其实就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程如下图:图1-1这张图反映了整个卷积过程中的一次相乘后相加的结果:这张图选用3*3的卷积核,卷积核内有九个数值,分别与大小为7*7的图像对应位置的像素值相乘相加,最终得到的结果是-8,代替了原来图像上
2021-07-02 11:06:07
898
原创 opencv-python学习(九):图片填充 — 漫水填充(floodFill)
一、指定颜色填充代码如下:# 引入包import cv2 as cvimport numpy as npdef fill_image(image): copyImage = image.copy() # 复制原图像 h, w = image.shape[:2] # 读取图像的宽高 mask = np.zeros([h+2, w+2], np.uint8) # 新建图像矩阵 +2是官方函数要求 #(0,80) 起始点,(0,100,255) 蓝色 ,(100,10
2021-07-01 16:13:09
2122
原创 opencv-python学习(八):图片切割、合并
原理通过操作图像矩阵来获取或合并指定位置的图像截取图片中的指定区域或在指定区域添加某一图片代码如下:# 引入包import cv2 as cvdef jie_image(src1): src2 = src1[369:637, 572:922] # 截取指定的区域 cv.namedWindow("splice", cv.WINDOW_NORMAL) cv.imshow("splice", src2) src1[169:437, 572:922] = src2 # 指
2021-07-01 14:04:59
960
原创 opencv-python学习(七):粗略的调整图片对比度和亮度
基本原理:两张图片合成先按原来的图片格式新建一个色素全为零的图片,然后按照两张图的比例不同来合成一张新图片代码如下:# 引入包import cv2 as cvimport numpy as npdef contrast_brightness_image(src1, a, g): h, w, ch = src1.shape # 获取shape的数值,height、width和通道 # 新建全零图片数组src2,将height、width,类型设置为原图片的通道类型(色素全为零,
2021-07-01 11:21:57
1538
原创 opencv-python学习(六):图片色素的数值运算(加减乘除)和逻辑运算(与或非异或)
一、数值运算加减乘除opencv自带图片色素的处理函数相加:add() 相减:subtract() 相乘:multiply() 相除:divide()原理就是:通过获取两张(一次只能是两张)个图片的同一个位置的色素值来实现运算。运算的要求:两张图片的shape要一样。代码如下:def shu_image(src11, src22): src = cv.add(src11, src22) # 相加 cv.imshow("addImage",src) src =
2021-07-01 10:43:11
417
原创 opencv-python学习(五):色彩空间转换
一:调用转换函数实现图像色彩空间转换代码如下:# 引入包import cv2 as cvimport numpy as npdef color_space_demo(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) #RGB 转换为 gray -- RGB转灰度图 cv.namedWindow("gray", cv.WINDOW_NORMAL) cv.imshow("gray", gray) hsv = cv
2021-07-01 09:52:56
1339
原创 opencv-python学习(四):numpy操作数组输出图片
一、读取一张图片,修改颜色通道后输出可以得到图像的:行数,列数,通道数的矩阵,对矩阵进行操作可改变图像像素代码如下:# numpy数组操作def access_pixles(image): print(image.shape) height = image.shape[0] # 图片垂直尺寸 width = image.shape[1] # 图片水平尺寸 channel = image.shape[2] # 图片通道数 print("width: %s, he
2021-06-30 16:52:38
922
原创 opencv-python学习(三):调用摄像头或打开视频文件
代码如下:# 引入包import cv2 as cvdef video_demo(): capture = cv.VideoCapture("./static/video/test1.mp4") # 打开摄像头,0代表的是设备id,如果有多个摄像头,可以设置为其他数值;也可以是视频文件地址,调用视频文件,如果要播放要设置帧的循环 while True: ret, frame = capture.read() # 读取摄像头,它能返
2021-06-30 16:34:24
238
原创 opencv-python学习(二):打印图片的属性,并另存为图片
代码如下:# 引入包import cv2 as cvimport numpy as npdef get_image_info(image): # 定义函数获取图片信息并输出 print(type(image)) # 显示图片类型 numpy类型数组 print(image.shape) # 图像矩阵的shape属性表示图像的大小,shape会返回tuple元组,第一个元素表示矩阵行数,第二个元组表示矩阵列数,第三个元素是3,表示像素值由光的三原色组成 print(i
2021-06-30 16:27:31
416
原创 (一)图像的表示与通道数问题、读取并展示图片
图像的表示与通道数问题数字图像的基本概念对于一幅的数字图像,我们看到的是 肉眼可见的一幅真正的图片,但是计算机看来,这副图像只是一堆亮度各异的点。一副尺寸为 M × N 的图像可以用一个 M × N 的矩阵来表示,矩阵元素的值表示这个位置上的像素的亮度,一般来说像素值越大表示该点越亮。一般来说,灰度图用 2 维矩阵表示,彩色(多通道)图像用 3 维矩阵(M× N × 3)表示。————————————————————————————————————————通道数问题描述一个像素点,如果是灰度,那
2021-06-30 16:23:09
3612
1
原创 小坑
项目将无法正常工作,每次启动项目时都会出现以下错误:Error in ./src/index.jsModule build failed: ReferenceError: Unknown plugin “import” specified in解决方法:npm install babel-plugin-import --save-dev或yarn add babel-plugin-import --dev...
2021-03-31 12:33:00
265
原创 Koa小结
Koa一、koa是什么?koa是一个新的WEB框架,致力于成为WEB领域和API开发中的一个更小,更富有表现力的基石。koa没有任何预置的中间件,可快速的编写服务器端的应用程序。koa的核心概念Koa ApplicationContextRequest、Responsenpm install -S koa //创建koanode index.js //启动项目const Koa = require('koa')const app = new Koa()app.use(
2021-03-29 15:34:47
889
1
原创 面向过程和面向对象
面向过程和面向对象有什么区别?从语言方面出发:C语言——完全面向过程C++ ——一半面向过程,一半面向对象(半面向对象)JAVA ——完全面向对象什么是面向过程的开发?一、面向过程的开发方式主要的特点是:1、注重步骤,注重的是实现这个功能的步骤。第一步干什么第二步干什么...2、注重功能实现的因果关系因为A所以B因为B所以C因为C所以D...3、面向过程中没有对象的概念。只是实现这个功能的步骤及因果关系 二、面向过程有什么缺点?(耦合度高,扩展力差)1、面向过程最
2021-01-10 19:56:07
165
原创 Java入门二(4)多态
多态——对象的多种形态1.引用多态父类的引用可以指向本类的对象父类的引用可以指向子类的对象2.方法多态创建本类对象时,调用的方法为本类方法创建子类对象时,调用的方法为子类重写的方法或者继承的方法...
2020-04-27 19:59:22
228
1
原创 Java入门二(3)继承
封装3.1 Java中的继承1.继承的概念继承是类与类的一种关系,是一种 “is a”的关系例如狗是动物,我们就可以说成狗继承动物类。狗是动物类的子类、派生类,动物类是狗的父类、基类注意:Java中的继承是单继承。和我们人一样,只有一个亲爹2.继承的好处子类拥有父类的所有属性和方法,private修饰的无效实现代码的复用3.语法规则class 子类 extends 父类例:c...
2020-04-23 00:05:24
281
原创 Java入门二(2)封装
封装2.1 什么是Java中的封装面向对象的三大特性:封装、继承、多态封装1.概念将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问2.好处a.只能通过规定的方法访问数据b.隐藏类的实例细节,方便修改和实现3.封装的实现步骤例如:package com.sytest;public class Phone{ floa...
2020-04-22 22:09:04
178
原创 Java入门二(1)什么是类和对象
前言:1.作者因学校新开的课程需要学到Java的基础知识,所以在此做个记录,新手学习难免有错误或理解不对的地方,望见谅。如发现错误希望各位大牛指正。2.这篇教程是一篇入门的教程,主要是方便自己的二次学习。3.关于Java的简介及一些基础介绍后续有空可能会将Java入门一整理出来。话不多说,进入正题:类和对象1.1 什么是类和对象什么是对象万物皆对象,客观存在的事物皆为对象。例如钟...
2020-04-21 21:46:38
283
原创 微信小程序 下拉刷新
/** * 下拉刷新 */ onPullDownRefresh: function () { wx.showNavigationBarLoading() //在标题栏中显示加载 //模拟加载 setTimeout(() => { wx.hideNavigationBarLoading() //完成停止加载 wx.stopPu...
2019-06-28 19:10:42
134
原创 微信小程序 关注页滚动条滚动视频自动播放功能(优)
之前写的关注页滚动播放有点小bug,所以现在换了一种方法实现。 主要是调用微信API:wx.createIntersectionObserver(Object this, Object options)实现实现思路在页面初加载时,拿到所有视频的id值。因为小程序没有DOM结构,所以要借助wx.createSelectorQuery();来拿到id值,具体代码后面会贴出。利用相交监听...
2019-06-24 18:05:54
1640
原创 微信小程序 下拉刷新
jsgetUserArticles: function () {if(this.data.page>0){ this.setData({ articles: this.data.articles.concat(obj.data.articles), }); console.log('new_articles', this...
2019-05-27 17:18:13
117
原创 定义数组对象
定义数组对象for (let j = 0; j < imgidlist.length;j++){ if(this.data.articles[j].vedio != '' && this.data.articles[j].vedio){ arr[j] = {}; arr[j].top = brr[j]; arr[j...
2019-05-21 17:48:50
1286
原创 v-if and v-show 的坑 -- 图片预览
v-if and v-show 的坑 – 图片预览v-ifv-if是动态的向DOM树内 添加 或者 删除 DOM元素;删除后该元素将不存在DOM树内v-showv-show是通过设置DOM元素的 display 样式属性控制显隐;相当于给元素添加 display 属性,根据 v-show 的布尔值来控制 display 属性的值项目开发时遇到的坑当上传图片时需要有图片预览效果。我的...
2018-12-28 10:29:49
916
tc3怎么打不开要怎么破
2015-12-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人