自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 直方图处理

文章目录前言直方图统计算法实现输出直方图直方图均衡化累积函数分布方法(DCF)算法实现源码前言图片增强主要是处理目标图片,从而达到处理结果的图片比原图片更适合特定的应用。而在各种各样的图片处理当中,就有一些是专门处理灰度图的。我们可以利用图片的像素亮度(灰度级别)看成是一个随机变量,其分布的情况就反应了图片的特征。我们可以使用Probability Density Function(PDF...

2019-03-13 21:02:51 836

原创 BMP文件处理

BMP文件处理文章目录BMP文件处理BITMAP位图文件头 BITMAPFILEHEADER信息头 BITMAPINFOHEADER调色板 RGBQUAD(内容可为空)实际位图信息24位图像对R,G,B三个分量进行分离,产生3幅新的图像具体实现对24彩色图像灰度化改变BITMAPFILEHEADER与BITMAPINFOHEADER添加调色板具体实现对8位灰度图进行反色具体实现BITMAP位图...

2019-03-07 11:04:04 1791 1

原创 C++智能指针的简单实现

什么是智能指针智能指针就是在c++当中将指针进行了封装,在保留了指针当中的各种各样的操作的同时,为指针增添了内存管理的功能智能指针,普通指针和普通指针相比,智能指针更加能够防范指针悬空的事情的发生.在c++当中,是没有内存自动回收的管理机制的,那么,内存的释放与生成,全靠程序员的自觉,要是有一个内存块被new生成了出来,却没有delete掉,那么就会产生内存泄漏的风险比如int * p...

2018-10-30 20:11:27 315

原创 SpringBoot 前后端时间传递出现误差

问题前后端之间传递的时间出现了误差,这个问题主要是由于编码格式导致的,前端传回来的是一个字符串,一般来说是SpringBoot是按照默认的方式将字符串转换为Date类型的.但是,要是你想要按照你的方式传递的话,就会出现一些问题了,比如时间快了或者慢了几小时啊,一天啊什么的,这个时候就是要定制自己的编码方式了解决前端传给后端这个时候,只需要定制一下格式转换器就可以了@C...

2018-08-09 15:11:31 3627

原创 Java AWT建立简单的绘图

前言在这里,我使用awt的组件建立一个简单的绘图小程序,能够使用的功能只有压住鼠标左键,然后,就能够进行绘制实现思路实现这个方法的思路也比较简单,主要有两点,一点就是对线的绘制,另一点就是对线的保存线的绘制由于,在鼠标在程序上拖动的时候会有一系列的点,讲这些点一个个的连接起来,就可以成为一条线段了,多个线段连接起来自然就组成了一幅画了使用Graphics g;...

2018-07-24 11:46:59 978

原创 C# 简单POST请求同时防止中文乱码的出现

概要在网络请求当中,总有可能会出现一些因为编码的问题而导致请求/发送出去的中文字符变成了乱码的情况,而这些情况大多都是因为对网络的请求/回应没有做好编码而导致的。在这里,我将要讲述一些我自己解决这些乱码的情况的经验中文乱码现象出现乱码的现象可以分为两种,一种是发送出去的数据是乱码,其中一种表现应该就是你想要将某些中文字符的字符串保存在数据库当中,结果,一保存就变成了一堆???了。另...

2018-07-24 00:37:41 5347

原创 设计模式------解释器模式

解释器模式简介解释器模式的定义为  给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。  ①文法:即语法规则。在解释器模式中每一个语法都将对应一个解释器对象,用来处理相应的语法规则。它对于扩展、改变文法以及增加新的文法规则都很方便。  ②解释器模式描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。 ...

2018-07-22 23:19:25 227

原创 Java注解的使用----实现快速创建SQL语句

何为注解Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。而这些功能则可以使得我们在程序中能够快速简洁的配置程序的信息。就比如现在,可以利用注解里面的配置信息来配置来为程序快速的建立数据库当中的表的信息注解注解的语法为public @interface annotation{String stringValue()...

2018-07-19 11:35:29 1901

原创 python实现简单的聊天小程序

概要这是一个使用python实现一个简单的聊天室的功能,里面包含群聊,私聊两种聊天方式.实现的方式是使用套接字编程的一个使用TCP协议 c/s结构的聊天室实现思路x01 服务端的建立首先,在服务端,使用socket进行消息的接受,每接受一个socket的请求,就开启一个新的线程来管理消息的分发与接受,同时,又存在一个handler来管理所有的线程,从而实现对聊天室的各种功能的处...

2018-07-04 17:46:53 15952 8

原创 使用Navicat 12远程连接MySQL8.0的那些事

前言远程连接MySQL8.0数据库主要有两个步骤步骤一改变MySQL的连接权限 由于MySQL的默认的root的连接权限只是本机的,因此,我们需要开启他的权限,使得它可以使其他人都能连接到他,这里有很多方法可以走到,我这里就先用改表举例子改表法,顾名思义,就是改变数据库的表,是的root这个账号能够处理其他ip地址的连接mysql-> use mysqlDatab...

2018-06-18 21:22:28 2298 1

原创 数据结构-----鸡尾酒排序

介绍鸡尾酒排序,名字很好听.不过,这只是一个对冒泡排序的一个改进的算法而已.这个算法与冒泡排序不同的一点在于,他在冒泡排序从低到高进行一波排序之后,又从高到低进行一波排序,以此类推,因此,这个算法也叫做定向冒泡排序这个算法与冒泡排序一样,在面对乱序程度较高的数据的时候有着比较差的性能实现思路loop 先是从低到高进行排序,比较相邻的两个数,不符合排序要求的就进行顺序调换,...

2018-06-12 17:16:49 287

原创 AStar 算法 ---在Unity当中实现

介绍AStar算法,是一种在静态路网中求最短路径的一种算法,是一种启发式的算法.其中,算法当中起点与终点的距离,与算法当中的预估距离越接近,则搜索速度越快.其实,在AStar算法当中,他的搜索路径的特点与迪杰斯特拉那种毫无章法四处搜索的不同,他是在向着离终点比较近的方向发起的搜索,因此,他的效率自然也就一般的寻路算法要高效了.当然,这也可以说是启发式算法的优点了实现思路ASta...

2018-06-11 17:46:19 2996

原创 Java 在多线程当中顺序执行程序

题目:有三个线程,每个线程,打印A、B、C 的操作,现要求同时执行三个线程,要求打印的顺序为A、B、C 不乱序,重复10次。思路:        在这里实际上是要进行线程的顺序操作。一般来说,线程的操作是无序的,随机发生的,若只是单纯的让这些线程发生的话,那么ABC的打印顺序自然就是无序的。那么,现在的问题就在于要约束线程的执行。        在我的想法当中,约束线程的执行,那么只需要将不需要运...

2018-03-13 16:26:26 877

原创 操作系统 ----- 进程管理与创建

简述进程和程序:进程是程序的一次运行活动,属于一种动态的概念程序是一组有序的静态指令,是一种静态的概念。但是进程离开程序也就没有了存在的意义。因此,我们可以这 样说:进程是执行程序的动态过程,而程序是进程运行 的静态文本。如果我们把一部动画片的电影拷贝比拟成 一个程序,那么这部动画片的一次放映过程就可比为一 个进程。一个进程可以执行一个或多个程序,反之同一个程序可能由几个进 程同时执行。例如:一个进

2017-12-16 17:43:33 397

原创 Android——ListView的优化

写在前面在Android当中,我们常常要使用到ListView,但是ListView有着一定的要求,而数据源却是各种各样的,因此,我们需要利用一个适配器,在适配器当中为ListView填充信息,这样,即降低了ListView的耦合性,也大大提升了其可延展性。当然在展示对ListView的优化的时候,首先得先建立一个ListView对ListView的配置这里主要是大致的展示了我这个ListView的

2017-06-13 21:50:10 276

原创 Activity之间的跳转的两种实现方法

概括在Android当中,Activity的跳转有两种方法,第一个是利用startActivity(Intent intent);的方法,第二个则是利用startActivityForResult(Intent intent,int requestCode);的方法,从字面上来看,这两者之间的差别只在于是否有返回值的区别,实际上也确实只有这两种区别第一种方法的代码实现//建立Intent对象,将两个

2017-06-13 17:50:28 6534

原创 查找算法——折半查找

介绍折半查找,又称作二分查找。这个查找的算法的特点,就是,要求数据要是有序的。1 ,存储结构一定是顺序存储 2 ,关键字大小必须有序排列然后,利用这组有序的数据之间的关系,来进行折半的查找。比方说,这组数据是升序排列的。一开始,首先对比这组数据的中间的项与关键值(key)的关系。若是关键值(key)>中间值,则说明,关键值(key)在中间值的右侧,因此将这组数据的区间缩小为以中间值为最左侧的小区间

2017-05-31 21:04:03 29489 3

原创 查找算法——顺序查找

介绍顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下。算法特点这个算法只需要遍历一次数组,然后将数组里的每一个元素与关键值(key)进行比对,若匹配的上,则说明数组当中存在该元素代码实现//顺序查找void sequentialSearch(int *arr,int l

2017-05-31 20:42:31 522

原创 在ListView的后面添加View

ListView是一个在Android当中十分重要的一个组件。大部分的APP都要利用到ListView这个组件,而在这个组件当中,若你使用的是线性布局(LinearLayout)则是无法在xml中定义一个紧接着ListView的末尾的View的,因此,我们可以利用ListView当中附带的方法来实现这个布局代码实现首先先建立一个在ListView的下面你想建立的布局(相应的布局文件要在xml当中写出

2017-05-25 20:00:58 1949

原创 数据结构——基数排序

简介基数排序和其他一般的排序算法不同,一般的排序算法主要是通过关键字之间的比较和移动记录这两种操作,而实现基数排序则不需要进行记录关键字间的比较。 基数排序是一种借助多关键字排序的思想,对单逻辑关键字进行排序的方法。代码实现/*基数排序算法思想假设我有数据11 23 45 29 31 67 59 32假设我拥有10个桶,编号分别为0-9一开始,我将个位数相应的数据都放入桶当中01

2017-05-20 20:03:19 626

原创 数据结构——堆排序

算法介绍堆排序只需要记录大小的辅助空间,每个待排序额记录仅占有一个储存空间。 堆的定义如下: 设有n个元素的序列{k1,k2,k3……kn},当且仅当k(i)<=k(2i),k(i)<=k(2i+1),或者k(i)>=k(2i),k(i)>=k(2i+1)时称之为堆。因此,我们可以将这个一维数组看做是一个完全二叉树,而这个完全二叉树满足任意孩子节点的值要小于(大于)其父节点。(也就是说根

2017-05-20 19:28:58 324

原创 数据结构——选择排序

简介选择排序是一种比较直观的排序方法算法思想选择排序的思想在于(默认升序排序),在一个数组当中,选择这个数组当中最小的元素,将这个元素放在第一位,然后寻找第二小的元素,将这个元素放在第二位。以此类推,直到将这个数组完成排序。 这是一个比较直观的排序方法代码实现(C++)/*选择排序算法思想在遍历数组的时候找出数组当中最小的元素,然后与第一个互换之后找出第二个最小的元素,然后与第二个互换

2017-05-20 18:27:45 450

原创 数据结构——Dijkstra算法(寻找图的最短路径)

Dijkstra算法 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。 问题描述:在无向图 G=(V,E) 中,假设每条边

2017-05-14 11:50:49 3339

原创 利用中序和前序遍历确定并生成一颗唯一的树

前言总所周知,一棵树是可以由其前序遍历与中序遍历或者中序遍历和前序遍历来唯一确定的。因此,我们也就可以利用这个结论,在拥有前序遍历和中序遍历的基础上建立一颗唯一的树。基本思想实现这个的基本思想在于找到树的根节点。当你利用前序遍历的第一个元素,就可以找到这棵树的根节点,而在中序遍历中,根节点的左边则是表示树的左子树,而右边则是表示树的右子树。因此,我们可以利用这点,找到这棵树的左(右)子树的前序与中序

2017-05-10 18:07:44 1097

原创 数据结构——栈的建立

从数据结构的角度来说,栈也是线性表,其特殊性则在于栈的基本操作是线性表操作的子集,他们的操作是受限与线性表的。栈是限定仅在表尾进行插入或删除操作的线性表。

2017-05-10 17:37:09 1284

原创 addView() 无法显示的问题

在制作一个2048的时候我需要在一个GridLayout中加入2048的中数字的卡片,于是建立了一个方法//向布局中加入卡片private void addCards(int cardWidth,int cardHeight){ Card card; for(int i = 0;i 4;i++) { for (int j = 0; j 4; j++) {

2017-03-28 18:24:28 11888 14

原创 种子填充法

种子填充法,其实现说到底就是从图像中的一个像素点压入栈中,然后搜索这个点的四周的点,然后再对那些点进行填充,之后再继续搜索。。。从而达到对填充的作用

2017-03-13 22:32:34 1759

原创 Android 利用百度地图SDK制作定位系统(二)定位

利用百度地图SDK进行定位

2017-03-08 15:15:36 988

原创 Android 利用百度地图SDK制作定位系统(一)环境配置

利用百度地图的SDK,首先得去百度地图SDK相应的网站去申请密钥,申请的方法官网上有然后就得去配置环境当然这个官网上的帮助也有。。。这里是Android studio的配置过程package com.example.baidumaptext;这个包名必须与申请的包名相同然后在AndroidManifext,xml中加入 <me

2017-03-08 15:04:30 314

原创 Android studio 自学笔记(一) 自定义 Dialog

自定义 Dialog<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_paren

2017-03-03 09:17:44 2984

空空如也

空空如也

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

TA关注的人

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