一个基于SpringBoot的在线教育系统「源码开源」

[附源码]计算机毕业设计基于Springboot在线教育系统 项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 阅读详情

1. 技术介绍

  • 核心技术:SpringBoot+mybatis;
  • 前端:layui;
  • 开发工具:idea;
  • 数据库:mysql5.7;
  • 模版引擎:thymeleaf;
  • 安全框架:SpringSecurity;
  • 日志框架:logback;
  • 数据库连接池:druid;
  • 在线编辑器:ckeditor;
  • 图片轮播组件:jQuerySwipeslider;

2.功能介绍

本项目分前台用户界面功能和后台管理功能;

  • 前台用户界面功能:
  • 滚动大条幅展示重要通知和课程或者活动;
  • 展示课程,根据实际业务需求,展示课程推荐,最新课程,免费课程,实战课程;
  • 课程搜索,用户输入指定课程关键字,可以搜索查询,也可以根据课程类别分类,和类型进行搜索;
  • 课程详细展示
  • 用户登陆
  • 在线支付

后台管理功能:

  • 管理员登录
  • 课程管理
  • 课程类别管理
  • 用户管理
  • 授课老师管理
  • 订单管理
  • 菜单管理
  • 友情链接管理
  • 系统属性管理
  • 自定义帖子管理
  • 轮转图片帖子管理

3. 前端

3.1 首页

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

3.2 课程

提供按照课程的类别,类型以及搜索框进行快速查询相关课程

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

点击任意一门课程,免费课程可以直接观看,vip课程则需要通过支付宝或者微信缴费开通vip进行观看

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

3.3 登入

学习课程时候需要登录才能观看相关视频资料

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

登入后可以查看个人中心的相关功能

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

在我的订单界面可以查看已经购买的课程

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

3.4 商品兑换

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

3.5 课程发布

在课程发布页面可以提交发布的课程资料

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

在我的发布页面可以查看所有已经发布的课程相关信息,查看审核状态

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4. 后端

4.1 登录

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4.2 系统管理

包括用户管理,角色管理,菜单管理,可以查看对应的信息并添加,导入,修改或删除

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

角色管理界面可以为角色分配权限

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4.3 课程管理

可以添加课程,对课程进行分类管理:公共课程,专业课程,免费课程等

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

在类别管理中可以添加课程的分类信息

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

在审核功能处可以对上传的视频进行审核

4.4 教师管理

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4.5 导航菜单

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4.6 轮播管理

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4.7 通知管理

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

4.8 礼品管理

一个月爆肝一个基于SpringBoot的在线教育系统「源码开源」

5,系统的核心代码

/**
 * 操作日志记录注解
 * Created by xiaomeng 2020-03-21 17:03
  *技术交流v:kaifazixun
 * 操作日志记录注解
 * Created by wangfan on 2020-03-21 17:03
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperLog {
 
    /**
     * 模块
     */
    String value();
 
    /**
     * 功能
     */
    String desc();
 
    /**
     * 是否记录请求参数
     */
    boolean param() default true;
 
    /**
     * 是否记录返回结果
     */
    boolean result() default false;
 
}*
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperLog {
 
    /**
     * 模块
     */
    String value();
 
    /**
     * 功能
     */
    String desc();
 
    /**
     * 是否记录请求参数
     */
    boolean param() default true;
 
    /**
     * 是否记录返回结果
     */
    boolean result() default false;
 
@Aspect
@Component
public class OperLogAspect {
    private ThreadLocal<Long> startTime = new ThreadLocal<>();
    @Autowired
    private OperRecordService operRecordService;
 
    @Pointcut("@annotation(com.egao.common.core.annotation.OperLog)")
    public void operLog() {
    }
 
    @Before("operLog()")
    public void doBefore(JoinPoint joinPoint) throws Throwable {
        startTime.set(System.currentTimeMillis());
    }
 
    @AfterReturning(pointcut = "operLog()", returning = "result")
    public void doAfterReturning(JoinPoint joinPoint, Object result) {
        saveLog(joinPoint, result, null);
    }
 
    @AfterThrowing(value = "operLog()", throwing = "e")
    public void doAfterThrowing(JoinPoint joinPoint, Exception e) {
        saveLog(joinPoint, null, e);
    }
 
    private void saveLog(JoinPoint joinPoint, Object result, Exception e) {
        // 获取reques对象
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = (attributes == null ? null : attributes.getRequest());
        // 构建操作日志
        OperRecord operRecord = new OperRecord();
        operRecord.setUserId(getLoginUserId());
        if (startTime.get() != null) operRecord.setSpendTime(System.currentTimeMillis() - startTime.get());
        if (request != null) {
            operRecord.setRequestMethod(request.getMethod());
            operRecord.setUrl(request.getRequestURI());
            operRecord.setIp(UserAgentGetter.getIp(request));
        }
        // 记录异常信息
        if (e != null) {
            operRecord.setState(1);
            operRecord.setComments(StrUtil.sub(e.toString(), 0, 2000));
        }
public class BaseController {
 
    /**
     * 获取当前登录的user
     */
    public User getLoginUser() {
        Subject subject = SecurityUtils.getSubject();
        if (subject == null) return null;
        Object object = subject.getPrincipal();
        if (object != null) return (User) object;
        return null;
    }
 
    /**
     * 获取当前登录的userId
     */
    public Integer getLoginUserId() {
        User loginUser = getLoginUser();
        return loginUser == null ? null : loginUser.getUserId();
    }
 
}
/**
 * 用户管理
 * Created by xiaomeng 2020-12-24 16:10
*技术交流V:kaifazixun
 */
@Controller
@RequestMapping("/sys/user")
public class UserController extends BaseController {
    @Autowired
    private UserService userService;
    @Autowired
    private DictionaryDataService dictionaryDataService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private OrganizationService organizationService;
 
    @RequiresPermissions("sys:user:view")
    @RequestMapping()
    public String view(Model model) {
        model.addAttribute("sexList", dictionaryDataService.listByDictCode("sex"));
        model.addAttribute("organizationTypeList", dictionaryDataService.listByDictCode("organization_type"));
        model.addAttribute("rolesJson", JSON.toJSONString(roleService.list()));
        return "system/user.html";
    }
 
    /**
     * 个人中心
     */
    @RequestMapping("/info")
    public String userInfo(Model model) {
        model.addAttribute("user", userService.getFullById(getLoginUserId()));
        model.addAttribute("sexList", dictionaryDataService.listByDictCode("sex"));
        return "index/user-info.html";
    }
 
    /**
     * 分页查询用户
     */
    @OperLog(value = "用户管理", desc = "分页查询")
    @RequiresPermissions("sys:user:list")
    @ResponseBody
    @RequestMapping("/page")
    public PageResult<User> page(HttpServletRequest request) {
        PageParam<User> pageParam = new PageParam<>(request);
        pageParam.setDefaultOrder(null, new String[]{"create_time"});
        return userService.listPage(pageParam);
    }
 
    /**
     * 查询全部用户
     */
    @OperLog(value = "用户管理", desc = "查询全部")
    @RequiresPermissions("sys:user:list")
    @ResponseBody
    @RequestMapping("/list")
    public JsonResult list(HttpServletRequest request) {
        PageParam<User> pageParam = new PageParam<>(request);
        List<User> records = userService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(pageParam.sortRecords(records));
    }
 
    /**
     * 根据id查询用户
     */
    @OperLog(value = "用户管理", desc = "根据id查询")
    @RequiresPermissions("sys:user:list")
    @ResponseBody
    @RequestMapping("/get")
    public JsonResult get(Integer id) {
        PageParam<User> pageParam = new PageParam<>();
        pageParam.put("userId", id);
        List<User> records = userService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(pageParam.getOne(records));
    }
/**
 * 用户管理
 * Created by xiaomeng 2020-12-24 16:10
*技术交流V:kaifazixun
 */
@Controller
@RequestMapping("/sys/user")
public class UserController extends BaseController {
    @Autowired
    private UserService userService;
    @Autowired
    private DictionaryDataService dictionaryDataService;
    @Autowired
    private RoleService roleService;
    @Autowired
    private OrganizationService organizationService;
 
    @RequiresPermissions("sys:user:view")
    @RequestMapping()
    public String view(Model model) {
        model.addAttribute("sexList", dictionaryDataService.listByDictCode("sex"));
        model.addAttribute("organizationTypeList", dictionaryDataService.listByDictCode("organization_type"));
        model.addAttribute("rolesJson", JSON.toJSONString(roleService.list()));
        return "system/user.html";
    }
 
    /**
     * 个人中心
     */
    @RequestMapping("/info")
    public String userInfo(Model model) {
        model.addAttribute("user", userService.getFullById(getLoginUserId()));
        model.addAttribute("sexList", dictionaryDataService.listByDictCode("sex"));
        return "index/user-info.html";
    }
 
    /**
     * 分页查询用户
     */
    @OperLog(value = "用户管理", desc = "分页查询")
    @RequiresPermissions("sys:user:list")
    @ResponseBody
    @RequestMapping("/page")
    public PageResult<User> page(HttpServletRequest request) {
        PageParam<User> pageParam = new PageParam<>(request);
        pageParam.setDefaultOrder(null, new String[]{"create_time"});
        return userService.listPage(pageParam);
    }
 
    /**
     * 查询全部用户
     */
    @OperLog(value = "用户管理", desc = "查询全部")
    @RequiresPermissions("sys:user:list")
    @ResponseBody
    @RequestMapping("/list")
    public JsonResult list(HttpServletRequest request) {
        PageParam<User> pageParam = new PageParam<>(request);
        List<User> records = userService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(pageParam.sortRecords(records));
    }
 
    /**
     * 根据id查询用户
     */
    @OperLog(value = "用户管理", desc = "根据id查询")
    @RequiresPermissions("sys:user:list")
    @ResponseBody
    @RequestMapping("/get")
    public JsonResult get(Integer id) {
        PageParam<User> pageParam = new PageParam<>();
        pageParam.put("userId", id);
        List<User> records = userService.listAll(pageParam.getNoPageParam());
        return JsonResult.ok().setData(pageParam.getOne(records));
    }
/**
 * 字典管理
 * Created by xiaomeng on 2021-03-14 11:29:03
 * 技术交流加v:kafazixun
 */
@Controller
@RequestMapping("/sys/dict")
public class DictionaryController extends BaseController {
    @Autowired
    private DictionaryService dictionaryService;
 
    @RequiresPermissions("sys:dict:view")
    @RequestMapping()
    public String view() {
        return "system/dictionary.html";
    }
 
    /**
     * 分页查询字典
     */
    @OperLog(value = "字典管理", desc = "分页查询")
    @RequiresPermissions("sys:dict:list")
    @ResponseBody
    @RequestMapping("/page")
    public PageResult<Dictionary> page(HttpServletRequest request) {
        PageParam<Dictionary> pageParam = new PageParam<>(request);
        return new PageResult<>(dictionaryService.page(pageParam, pageParam.getWrapper()).getRecords(), pageParam.getTotal());
    }
 
    /**
     * 查询全部字典
     */
    @OperLog(value = "字典管理", desc = "查询全部")
    @RequiresPermissions("sys:dict:list")
    @ResponseBody
    @RequestMapping("/list")
    public JsonResult list(HttpServletRequest request) {
        PageParam<Dictionary> pageParam = new PageParam<>(request);
        return JsonResult.ok().setData(dictionaryService.list(pageParam.getOrderWrapper()));
    }
 
    /**
     * 根据id查询字典
     */
    @OperLog(value = "字典管理", desc = "根据id查询")
    @RequiresPermissions("sys:dict:list")
    @ResponseBody
    @RequestMapping("/get")
    public JsonResult get(Integer id) {
        return JsonResult.ok().setData(dictionaryService.getById(id));
    }

一个月爆肝一个基于SpringBoot的在线教育系统【源码开源】【建议收藏】 今天给大家开源一个基于springboot的在线教育平台系统,系统是小孟开发的,第一个版本是小锋开发的(小锋的博客),我进行了本版本的开发。该系统完全免费、开源。系统完美运行,无任何的bug,技术较多,可以当做面试的项目或者作为毕设的项目。系统获取源码的方式见文章底部。为防止刷着刷者找不到,大家点赞、收藏文章。系统完美运行。具体的介绍如下所示。目录1. 技术介绍2.功能介绍3. 前端3.1 首页3.2 课程3.3 登入3.4 商品兑换3.5 课程发布4. 后端4.1 登录4.2 系统管理4.3 课程管理4. 阅读详情

相关推荐

JAVA开源免费项目 基于Vue和SpringBoot的在线教育系统(附源码)

在线教育系统管理员功能有个人中心,用户管理,讲师管理,普通管理员管理,课程管理员管理,课程管理,课程分类管理,教师管理,名师管理,系统管理,订单管理。普通管理员和课程管理员都可以进行注册。

胡晗靓的Java学习博客 1762

Java基于在线教育系统(源码+mysql+文档)

首先,通过对现有在线教育系统的分析,可以发现其存在的问题和不足之处,为后续的研究提供基础。其次,针对这些问题,本研究将提出相应的改进策略,如优化课程设置、提高教师素质、加强家校沟通等,以期提高在线教育系统的整体质量。最后,本研究还将对改进后的在线教育系统进行实证研究,验证所提出的策略的有效性,为在线教育的发展提供有益的借鉴。总之,本研究对于推动在线教育系统的优化和发展具有重要的理论和实践意义。在线教育系统作为一种新型的教育方式,以其便捷、高效、个性化的特点,逐渐受到了广大学生和家长的青睐。

路可程序设计 1305

【开源免费】基于Vue和SpringBoot的在线教育系统(附论文)

在线教育系统管理员功能有个人中心,用户管理,讲师管理,普通管理员管理,课程管理员管理,课程管理,课程分类管理,教师管理,名师管理,系统管理,订单管理。普通管理员和课程管理员都可以进行注册。用户也可以注册。用户可以购买课程,收藏课程,收藏教师。

杨荧的优快云博客 1692

一个月肝一个基于SpringBoot的在线教育系统【源码开源】【建议收藏】

今天给大家开源一个基于springboot的在线教育平台系统,系统是小孟开发的,第一个版本是小锋开发的(小锋的博客),我进行了本版本的开发。 该系统完全免费、开源。 系统完美运行,无任何的bug,技术较多,可以当做面试的项目或者作为毕设的项目。 系统获取源码的方式见文章底部。 为防止刷着刷者找不到,大家点赞、收藏文章。 系统完美运行。具体的介绍如下所示。 目录 1. 技术介绍 2.功能介绍 3. 前端 3.1 首页 3.2 课程 3.3 登入 3.4 商品兑换 3.5 课程发布

程序员springmeng 4万+

JAVA开源免费项目 基于Vue和SpringBoot的微服务在线教育系统(附源码)

管理员功能有个人中心,用户管理,课程信息管理,课程类型管理,学科管理,购买的课程管理,职业规划管理,视频点播管理,我的笔记管理,我的课程管理,消息通知管理,学习交流,试卷管理,留言板管理,试题管理,系统管理,考试管理

胡晗靓的Java学习博客 1199

在线教育系统源码,教育直播平台源码

最近弄了一个教育直播APP系统源码,是一款网络在线学习、直播授课的软件源码。 完全开源源码,支持二次开发与定制开发。 我们的优势: 代码结构清晰,架构完整,功能齐全,拥有完善的数据备份与还原系统,保证数据库的安全,1对1定制方案。 功能介绍:各类课程、云课堂、课程专辑、名师讲座、笔记管理、同步课程、提问管理、讲师列表、点评管理、讲师审核系统、分类配置、访问统计、管理日志、缓存清理、数据备份、讲师简介、直播列表、问答、群组、我的中心、考试系统、系统管理、错题收集、订单管理、直播管理、提现申请、卡号列表、管理后台 感兴趣的朋友可以联系我来获取产品演示

一个月一个基于SpringBoot的在线教育系统「源码开源」

1. 技术介绍核心技术:SpringBoot+mybatis;前端:layui;开发工具:idea;数据库:mysql5.7;模版引擎:thymeleaf;安全框架:SpringSecurity;日志框架:logback;数据库连接池:druid;在线编辑器:ckeditor;图片轮播组件:jQuerySwipeslider;2.功能介绍本项目分前台用户界面功能和后台管理功能;前台用户界面功能:滚动大条幅展示重要通知和课程或者活动;...

Cr1556648487的博客 396

基于springboot+layui的在线教育平台系统源码+数据库,可做Java毕业设计

介绍 springboot+layui在线教育平台系统 1. 技术介绍 核心技术:SpringBoot+mybatis; 前端:layui; 开发工具:idea; 数据库:mysql5.7; 模版引擎:thymeleaf; 安全框架:SpringSecurity; 日志框架:logback; 数据库连接池:druid; 在线编辑器:ckeditor; 图片轮播组件:jQuerySwipeslider; 2.功能介绍 本项目分前台用户界面功能和后台管理功能; 前台用户界面功能: 滚动大条幅展示重要通知和课程或者活动; 展示课程,根据实际业务需求,展示课程推荐,最新课程,免费课程,实战课程; 课程搜索,用户输入指定课程关键字,可以搜索查询,也可以根据课程类别分类,和类型进行搜索; 课程详细展示 用户登陆 在线支付 后台管理功能: 管理员登录 课程管理 课程类别管理 用户管理 授课老师管理 订单管理 菜单管理 友情链接管理

基于SpringBoot的在线教育系统【附源码】

随着互联网技术的飞速发展,线上教育已成为现代教育的重要组成部分。在线教育系统以其灵活的学习时间和地点,以及丰富的学习资源,受到了广大师生的青睐。然而,市场上的在线教育平台种类繁多,功能各异,如何开发一个既符合用户需求又具备高效管理功能的在线教育系统,成为了一个值得研究的问题。基于SpringBoot的在线教育系统,正是针对这一需求而提出的解决方案。

2402_84112588的博客 1072

泛微E10 eBuilder低代码平台避坑指南:新手最容易犯的5个错误及解决方案

本文针对泛微E10 eBuilder低代码平台的新手开发者,总结了5个最常见错误及解决方案,包括表单联动配置、流程设计权限、动作流时序、数据加工类型转换和权限管理过度配置等问题。通过实战经验和代码示例,帮助开发者避开常见陷阱,提升开发效率。

weixin_30919429的博客 540

RYU+mininet——RYU

1. 使用RYU做mininet的控制器 1.1 RYU介绍与安装 RYU是一款基于python的控制器,你可用Ryu实现各种想要实现的网络功能,它可以下发或接收流表进行各种路由运算。 建议使用高版本的Ubuntu系统安装ryu,否则会有各种错误,安装过程比较简单,如下: apt install gcc libffi-dev libssl-dev libxml2-dev libxslt1-...

qq_34415266的博客 1万+

在线教育|基于springboot+vue的在线教育系统(源码+数据库+文档)

本文介绍了一个基于SpringBoot+Vue的在线教育系统开发方案。系统采用前后端分离架构,包含管理员和用户两种角色,主要功能模块包括课程管理、用户管理、笔记管理、职业规划等。文章详细阐述了系统设计、功能实现、数据库设计(包含课程信息、评论等核心表)以及核心代码实现(如分页查询服务)。该系统使用MySQL数据库,Java语言开发,可作为计算机专业毕业设计参考。文末提供了源码获取方式和更多毕设选题推荐。

伟庭师兄的博客 1863

30分钟上手TI DRV89xx-Q1EVM:多通道电机驱动器评估板实战指南

多通道H桥电机驱动器是机器人、工业自动化及汽车电子中实现多轴运动控制的核心器件,其核心原理是通过集成多个半桥电路,利用SPI通信与PWM调制技术,实现对多个直流电机或负载的独立、精确驱动。这类技术方案能显著减少外围元件数量与PCB面积,提升系统集成度与可靠性,在关节机器人、精密座椅调节及多轴控制单元等场景中价值突出。本文以德州仪器DRV89xx-Q1系列评估板为例,深入解析其硬件架构、安全操作规范及图形化软件配置流程,重点涵盖**过流保护**与**PWM频率**等关键参数的设置与调试,帮助工程师快速完成从硬

weixin_29192141的博客 336

开源一个功能完整的SpringBoot项目框架

福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...

12万+

博途AI助手演示,完成简单且重复的梯形图代码,并导入到博途

自写个博途AI助手,下面演示AI帮我生成完善多个模拟量输入转换的代码,

gsjkwg的博客 1530

Carla自动驾驶仿真一:快速安装与运行Carla

网上有不少的Windows版本的Carla的安装教程,这里简单记录下自己安装过程,写的也比较详细,基本不用看其他文章。

zataji的博客 2万+

基于SpringBoot的在线教育系统

【2025最新】基于Java+SpringBoo+Vue+MySQL的在线教育系统

计算机学姐的博客 1076

使用C#实现Padim算法的训练和推理:智能缺陷检测的前沿技术

Padim (Patch-based Deep Image Model) 是一种用于无监督异常检测的深度学习算法。它通过提取图像中的局部特征(patch),并在这些特征上构建一个正常样本的分布模型来识别异常。无监督学习:不需要标注数据,适用于缺乏标签的情况。局部特征提取:通过卷积神经网络提取图像的局部特征(patch)。低秩近似:利用低秩近似构建正常样本的协方差矩阵,有效降低计算复杂度。鲁棒性强:能够处理多种类型的缺陷和噪声。

墨夶的博客 1015

基于springboot的在线教育系统的设计与实现

功能对照表的目的是帮助开发团队了解软件的功能状况,及时修复功能缺陷和错误,并提高软件的质量和稳定性。功能编号功能名称功能描述功能状态备注1用户登录用户可以通过提供用户名和密码登录系统正常用户名和密码的验证机制安全性2用户注册用户可以通过提供用户名、密码和电子邮件地址注册新的账户正常无3密码修改用户可以通过提供原密码和新密码修改已有账户的密码正常用户密码的修改操作是否需要提供安全认证4用户信息查看用户可以查看自己的个人信息,如用户名、电子邮件地址、角色等正常无。

2401_82770201的博客 1701

Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现

既然涉及到视频输入,就会有很多与 相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。 内核中已经为我们提供了这个控制类型的,我们只需要明确自己需要添加什么控制类型,然后将其添加进内核中即可。该部分摄像头代码一半厂家会提供驱动或者相对应的参数,否则没有图像处理知识很难开发出来。 返回总目录...

DSMGUOGUO的博客 1437

ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)

【实验描述】缓冲区(Buffer)是为了识别某一地理实体对周围地物的影响而在其周围建立的一定宽度多边形区域,缓冲区分析(Buffer Analysis)是用来确定不同地理要素的空间临近性或接近程度的一种分析方法。作为GIS的空间分析方法之一,缓冲区分析的应用范围特别广泛,常用于分析矢量实体对周围的影响。例如,工厂排放的废水废气所影响的空间范围等等。 一、缓冲区的基本概念 1、缓冲区 是地理空间目标的一种影响范围或服务范围。 2、缓冲区分析 指根据分析对象的点、线、面实体,自动建立它们周围一定距离的带

智慧空间实验室 1万+
上一篇: 「最强」Springboot学习路线汇总(升职加薪必备架构图)
下一篇: 分布式事务与分布式系统
Javaesandyou
博客等级 码龄5年 742粉丝 563原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值