- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 【OpenCV学习】第16课:图像边缘提取 - Sobel算子详细剖析(图像梯度)
int depth, //输出图像深度,填-1表示跟输入图像一致, 由于灰度图是CV_8U,所以Sobel一般使用CV_16S/CV_32F, 需要比输入的灰度图的深度更高, 结果才会更明显。int depth, //输出图像深度,填-1表示跟输入图像一致, 由于灰度图是CV_8U,所以Sobel一般使用CV_16S/CV_32F, 需要比输入的灰度图的深度更高, 结果才会更明显。int dx, //x方向,几阶导数, sobel取1。
2022-12-11 18:00:01
4080
原创 【OpenCV学习】第14课:边缘检测与自定义线性滤波(卷积, Rebert算子, Sobel算子, 拉普拉斯算子)
参考文章:http://t.zoukankan.com/whw1314-p-12007928.html。常见的卷积算子(kernel, 核), 这些算子在边缘提取中都经常用到。在图像上使用卷积的目的:模糊图像, 提取边缘轮廓, 图像锐化等。
2022-12-11 15:15:18
794
原创 【OpenCV学习】第13课:基本阈值操作
简单点来说就是把图像分割的标尺, 举个栗子, 现在想象一个场景, 一个桌子上有一堆苹果, 现在要求你去将它分为两类, 我们很容易就想到, 把大的划到一边, 小的划到另一边, 那么这个划分大小的标准,具体到某个值, 就是我们所说的阈值, 它是一个划分的标尺。阈值类型 - 阈值反二值化(threshold binary Inverted): 大于阈值的直接赋为最小值(0), 小于阈值的赋为最大值(255)阈值类型 - 阈值取零(threshold to zero): 大于阈值部分不变, 小于阈值部分取零。
2022-12-11 12:35:45
563
原创 【OpenCV学习】第12课:特征提取(高斯不同)
看不太清,,,原因是高斯模糊的两个差值很小,所以反映到灰度图上像素值也就很低,这个时候就需要我们用到上边提到的API了, normalize进行归一化显示(我们是线性提亮嘛)
2022-12-10 22:20:09
736
原创 【OpenCV学习】第11课:图像金字塔 - 上采样与降采样(高斯金字塔,放大与缩小图像)
参考文章链接:https://blog.csdn.net/qq_54185421/article/details/124350723。
2022-12-10 22:00:29
1293
原创 【OpenCV学习】第10课:形态学操作的应用-图像去掉干扰线丶干扰点
int adaptiveMethod, //自适应阈值算法,只能选其中之一: ADAPTIVE_THRESH_MEAN_C,ADAPTIVE_THRESH_GAUSSIAN_C。去干扰线干扰点的操作方法, 大体上与第9课所说的提取水平/垂直线一致, 只是把核改为矩形, 不要线型就行,反正都是通过开操作来实行的。double C, //常量, 可以是正数,0,负数, 它是减去平均或加权平均值后的常数值,通常为正数。由上图结果可以看出,我们的提取不大顺利, 把字母也去掉了一些, 那么我们改一下代码。
2022-12-10 20:57:34
1752
原创 【OpenCV学习】第9课:形态学操作的应用-提取水平线丶垂直线
图像在进行形态学操作的时候, 可以通过自定义的结构元素实现结构元素对输入图像的一些对象敏感丶对另外一些对象不敏感, 这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 -来进行提取的操作, 其中的自定义结构元素, 也就是我们说的kernel(核), 常见的核的形状:矩形丶圆丶直线丶磁盘形状丶钻石形状以及各种自定义形状。, 使用不同的结构元素实现对输入图像的操作,从而得到想要的结果。使用均值滤波过后的水平线提取。
2022-12-10 20:48:25
946
原创 【OpenCV学习】第8课:形态学操作-开丶闭丶形态学梯度丶顶帽丶黑帽
int OPT: CV_MOP_OPEN/ CV_MOP_CLOSE/ CV_MOP_GRADIENT/ CV_MOP_TOPHAT/ CV_MOP_BLACKHAT (按顺序依次为:开丶闭丶基本梯度丶顶帽丶黑帽)-Mat src: 输入图像。-Mat dst: 输出图像。-kernel: 核。
2022-12-10 19:27:59
628
转载 【C++】内存池的概念与简单示例
概念我们每次使用new T来初始化类型T的时候, 其实都发生以下两步操作:构造函数初始化内存, 既然内存分配耗时,那我们很容易想到的就是一次性分配一大块内存,然后在用户需要的时候再划分其中一部分给用户,这样的话,一次分配, 多次使用, 在特定的需求场景下是可以较大的提高效率的(比如libuv中频繁的申请和释放内存),而用来管理这所谓的一大块内存的数据结构, 也就是今天我们要说的内存池。外碎片问题目前操作系统普遍采用的段页式内存分配方式就是:将进程的内存区域分为不同的段,然后将每一段由多个固
2022-12-07 14:20:23
229
原创 【OpenCV学习】第7课:形态学操作-膨胀与腐蚀
理论形态学操作(morphology operators)-膨胀跟前边的卷积操作类似, 但是膨胀的操作是在核内所有像素值, 取最大的那个来替换中心锚点的值, 并且核的形状可以是矩形丶圆等.
2022-12-06 10:54:15
606
原创 【OpenCV学习】第6课:图像模糊(中值滤波,高斯双边滤波)
4.高斯双边滤波有两个核, 一个空域核(上边图那个绿色的格子),一个值域核(用来保留像素值的差异,将像素值的差距限定在一定范围内,差距太大的就不用去模糊)5.高斯双边滤波一般配合提升对比度(filter2D(src,dst,-1,kernel,Point(-1,-1),0))使用,可以达到美颜的效果。-3 sigma space 如果d的值大于0,则这个3就无效,否则就是根据这个值来推算d的值。3.高斯双边滤波:是一种边缘保留的滤波方法,避免了边缘数据的丢失,保留了图像轮廓不变。
2022-12-05 22:12:04
847
原创 【OpenCV学习】第5课:图像模糊(均值滤波,高斯滤波)
参考文章链接:https://blog.csdn.net/qq_30460949/article/details/121990114。
2022-12-05 21:44:09
1159
原创 【OpenCV学习】第4课:操作像素(提高图像的亮度对比)
图像的变化可以为:像素变化(点操作), 领域操作(区域),g(i,j) = α*f(i,j) + β, β是增益变量。
2022-12-05 18:48:16
276
原创 【OpenCV学习】第3课:线性混合
大致可以理解为在第1张图像上通过f(x)获取到1个像素点的值,再通过g(x)获取到第2张图像同1个位置的像素点值,两者各取1部分混合形成第3张图像相同位置的像素点值。g(x),其中α的取值在0~1之间,
2022-12-05 18:26:52
82
原创 【OpenCV学习】第2课:图片锐化 - 矩阵的掩膜操作(卷积中的锐化算子)
/ 2.获取像素矩阵的指针,索引i表示第几行,从0开始。上下左右4个像素值分别乘以-1,再加上中间像素值乘以5的值,最后得到的值再重新赋值给中间像素,这就是掩膜的一个例子。// 3.获取某行指针。矩阵的掩膜操作比较简单,根据掩膜来重新计算每个像素的像素值,掩膜(mask)也被称为核(kernel)CV_Assert(myImage.depth()==CV_8U);这里用到的掩膜,其实只是数学中卷积的概念的一个应用。
2022-12-05 15:28:06
606
原创 【OpenCV学习】第1课:加载丶修改丶显示丶保存图像
这俩函数一般是联合使用的,你要先创建一个窗口(nameWindows),再用这个窗口去显示图像(imshow)参数1:文件路径与名称, 例"C:\Users\yfc\Desktop\textImage.png"参数3:源和目标图像的色彩空间, 例CV_BGR2HLS其BGR2HLS就是目标图像的色彩空间。显示: cv::namedWindows与cv::imshow联合使用。参数1:窗口名称,通过这个名称找到namedWindows创建的窗口。保存: cv::imwrite。加载: cv::imread。
2022-12-05 14:56:52
496
转载 预防内存泄漏规律总结
(一)如何预防1. 早发现,早解决每写完一个功能的代码,可以是函数、或者类、或者模块都应该进行测试。如果公司有单元测试工具,那自然最好。如果没有可以自己写些测试函数。这个除了对内存,对一般功能测试、函数接口测试等都是应该的。程序的可调试性也是考虑一个程序员的功底,个人认为。2. 有良好的设计设计是个很大的话题,这里专门是针对内存的建议。*2.1 养成良好的编码习惯* 创建和释放要集中,在一个类中要配对,如 Init---UnInit,Create---Destroy。 释放的顺序应
2021-03-02 16:32:37
289
转载 Cocos2dx-lua开发之c++绑定到lua
一. 简单介绍文章介绍是在实际的游戏开发项目中,将自定义的C++类绑定到lua中,能够让lua调用c++类。会创建一个python脚本,执行python脚本会让自动将我们的c++类绑定到lua。生成我们要的代码。文章会介绍配置环境、编写脚本、测试类、实际项目中调用,以及一些遇到的问题二.准备环境当前我用的是quicklua 3.3 win7系统。下载需要的工具可以先看一下 \tools\tolua \README.mdown里面有详细介绍,而且都有下载地址我现在是win系统,翻译一下(1). 要
2021-01-21 14:34:55
368
转载 cocoscreator 音频管理cc.audioEngine
播放音频var id = cc.audioEngine.play(path, loop, volume ); //参数path代表音频路径,loop代表是否循环, volume代表音量范围0~1.0设置音频是否循环cc.audioEngine.setLoop(id, loop); //id代表由play获得的id,loop代表是否循环获取音频的循环状态cc.audioEngine.isLoop(id); //id代表由play获得的id设置音量(0.0 ~ 1.0)cc.aud
2020-10-26 15:51:33
3589
原创 CocosCreator打包中文
先构建项目, 不编译, 去项目根目录\build\jsb-default\frameworks\runtime-src\proj.android\res\values\strings.xml里,修改app名称为中文,然后再编译.
2020-09-22 10:01:42
583
转载 Android各种访问权限Permission详解
在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作。在Android中这样的权限有很多种,这里将各类访问权限一一罗列出来,供大家使用时参考之用。android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序android.permission.FACTORY_TEST
2020-09-17 10:25:15
4571
转载 CocosCreator获取设备ID唯一标识符
获取设备信息等操作, 要先到java层去.在这个文件里面添加代码,用于获取需要的设备信息:路径:“bulid\jsb-default\frameworks\cocos2d-x\cocos\platform\android\java\src\org\cocos2dx\lib\Cocos2dxActivity.java”在这个文件里面获取权限:路径:“bulid\jsb-default\frameworks\runtime-src\proj.android-studio\app\AndroidManif
2020-09-17 10:22:06
5042
原创 cocos creator打包apk常见错误日志
1.打包的时候,报这个错误:Parameter specified as non-null is null: method com.android.build.gradle.internal.cxx.configure.JsonGenerationVariantConfiguration., parameter ndkVersion原因:NDK版本不适配.解决方法:更换最新版本的NDK.
2020-08-13 09:34:16
937
原创 Cocos lua添加物理按键监听
--创建监听 local keyboardlistener = cc.EventListenerKeyboard:create() --按下弹起处理函数,打印出按键代码 local function keyboardpress(code , event) print("按下") dump(code) end local function keyboardRelease(code , event) print("弹起") .
2020-08-03 15:12:14
856
原创 Cocos lua创建重力 传感器
--加速度传感器 local acceleration = cc.EventListenerAcceleration:create(function (acc,event) print("x:"..acc.x..",y:"..acc.y..",z:"..acc.z.."") end) self:getEventDispatcher():addEventListenerWithSceneGraphPriority(acceleration,self)...
2020-08-03 14:53:50
210
原创 Cocos lua给控件创建触摸事件处理
Cocos lua给控件创建触摸事件处理1.单点触摸 --测试代码,新增Label local txt_label = cc.LabelTTF:create("测试触摸","Courier",50); txt_label:addTo(self) txt_label:setPosition(yl.WIDTH/2,yl.HEIGHT/2 - 100); self.txt_label = txt_label --单点触摸监听 local txtli
2020-08-03 14:29:58
433
原创 lua下载函数
–下载函数downFileAsync(url, savename, savepath, callFunction)–解压函数unZipAsync(zipfile, unzippath, callFunction)
2019-07-19 14:17:44
290
转载 C++ TCP/IP通信
协议图文详解流式套接字(TCP)数据报套接字代码实例通信:服务器端代码: 1 // socketserver.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include "conio.h" 6 #include "windows.h" 7 //socket头文件 8 #include "wi...
2019-05-27 14:31:38
14988
6
原创 cocos lua实现UI组件事件穿透
1.将上层的事件关闭。2.将上层的吞噬事件关闭,有API:--关闭吞噬事件(让事件向下传递) setTouchSwallowEnabled(false)
2019-05-20 18:05:43
952
原创 lua写普里姆最小生成树算法
--普里姆最小生成树算法local function MiniSpanTree_Prim( MGraph_G ) local MAXSIZE = #MGraph_G if not MGraph_G[MAXSIZE][MAXSIZE] then --判断邻接矩阵是否存在(是一个二维数组) return end local NodeTable = {} --顶点下标表...
2019-05-07 16:01:32
175
转载 lua两点角度运算
-- 根据两点求夹角function getAngleByPos(p1, p2) local p = {}; p.x = p2.x - p1.x; p.y = p2.y - p1.y; local r = math.atan2( p.y, p.x ) * 180 / math.pi; return r end-- 计算原点到目标点的夹角弧度function UtilsCal...
2019-05-04 10:59:11
3080
1
转载 lua检查字符串的中文
--检查中文,存在则返回truefunction CheckChinese(s) local ret = {}; local f = '[%z\1-\127\194-\244][\128-\191]*'; local line, lastLine, isBreak = '', false, false; for v in s:gfind(f) do local isChinese ...
2019-05-04 10:53:58
4617
原创 cocos2d-x各种UI控件操作
--隐藏ScrollView或ListView的滚动条 ScrollView_gameList:setScrollBarAutoHideEnabled(false) ListView_gameList:setScrollBarAutoHideEnabled(false) --设置滚动区域 ScrollView_gameList:setInnerContainerSize( cc.siz...
2019-04-23 18:11:24
660
转载 常用颜色RGB值
白色:rgb(255,255,255)黑色:rgb(0,0,0)红色:rgb(255,0,0)绿色:rgb(0,255,0)蓝色:rgb(0,0,255)青色:rgb(0,255,255)紫色:rgb(255,0,255)调整相关数字,便可以得到深浅不一的各种颜色。...
2019-04-23 15:16:18
3971
转载 数字转中文
-- 数字字符串转换成中文大写function ToolKit.transformNumberString(numberStr) if numberStr ~= nil then local tmpNum = tonumber(numberStr) if tmpNum > 0 then local name = { "", "...
2019-04-10 16:25:22
243
原创 cocos2d-x lua中给精灵(Sprite)添加触摸事件
function HpnnView:addCardTouchEvent( sprite ) local function onTouchEnded( touch,event ) ... --触摸处理函数 end local touchListen = cc.EventListenerTouchOneByOne:create() ...
2019-03-21 15:57:25
2241
转载 cocos lua实现class解释
function class(classname, ...) --参数一:所要创建的类名,参数二:可选参数,可以使function,也可以是table,userdata等 local cls = {__cname = classname} local supers = {...} for _, super in ipairs(supers) do --遍历可选参数...
2019-03-20 16:26:21
1125
1
转载 cocos2d-x实现圆形进度条
–创建圆形进度条function LayerA:createCircleLoadingBar(parent,pos,percentage)–创建一个图片精灵作为背景 需要一个空心圆形的图片local spriteBg = cc.Sprite:create(“loadingBarBg.png”)–创建一个进度条图片精灵 需要一个空心圆形的图片local sprite = cc.Sprite...
2019-03-16 12:10:26
1547
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人