PHP url地址加密疑问

1721402711tt 2014-01-22 02:30:52
比如说我页面显示URL 地址 http://127.0.0.1:8080

我怎么加密呢? 加密成一传乱字符,还有即时即使别人复制乱码字符去访问也是不可以。
怎么做呢?大虾指点!
...全文
281 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
1721402711tt 2014-01-23
  • 打赏
  • 举报
回复
引用 8 楼 PhpNewnew 的回复:
[quote=引用 6 楼 u013296118 的回复:] [quote=引用 5 楼 PhpNewnew 的回复:] 根据访问的特征输出这个文件,而不是连接神马的.
版主想说的是文件流吗? 我之前也是怎么想的,但是MP3播放器不支持流的播放只支持文件格式播放,所以很麻烦。 [/quote] 播放?没记错的话好像一些播放的服务器端是可以通过插件的开发来实现的,不过不知道MP3是否可以,视频倒是曾经有做过 [/quote] 能不能就是说,读出文件 在文件上面加权限 或者是验证session
wjcody 2014-01-22
  • 打赏
  • 举报
回复
不还是显示文件名的么...
1721402711tt 2014-01-22
  • 打赏
  • 举报
回复
引用 8 楼 PhpNewnew 的回复:
[quote=引用 6 楼 u013296118 的回复:] [quote=引用 5 楼 PhpNewnew 的回复:] 根据访问的特征输出这个文件,而不是连接神马的.
版主想说的是文件流吗? 我之前也是怎么想的,但是MP3播放器不支持流的播放只支持文件格式播放,所以很麻烦。 [/quote] 播放?没记错的话好像一些播放的服务器端是可以通过插件的开发来实现的,不过不知道MP3是否可以,视频倒是曾经有做过 [/quote] <audio src="Take%20Me%20Home%EF%BC%8CCountry%20Road-John%20Denver%20-%20QQ%E9%9F%B3%E4%B9%90%20-%20%E9%9F%B3%E4%B9%90%E4%BD%A0%E7%9A%84%E7%94%9F%E6%B4%BB%21_files/C200003MXJLb0kdYBg.m4a" id="h5audio_media" height="0" width="0" autoplay="false"> 这是QQ 音乐出来的,不知道腾讯是怎么实现的
黄袍披身 2014-01-22
  • 打赏
  • 举报
回复
引用 6 楼 u013296118 的回复:
[quote=引用 5 楼 PhpNewnew 的回复:] 根据访问的特征输出这个文件,而不是连接神马的.
版主想说的是文件流吗? 我之前也是怎么想的,但是MP3播放器不支持流的播放只支持文件格式播放,所以很麻烦。 [/quote] 播放?没记错的话好像一些播放的服务器端是可以通过插件的开发来实现的,不过不知道MP3是否可以,视频倒是曾经有做过
xuzuning 2014-01-22
  • 打赏
  • 举报
回复
无论如何,播放器是需要请求到真实的数据源的,否则就无法播放 你只要通过 url 向播放器传送半截地址参数,而另一半是由播放器产生的就可以了
1721402711tt 2014-01-22
  • 打赏
  • 举报
回复
引用 5 楼 PhpNewnew 的回复:
根据访问的特征输出这个文件,而不是连接神马的.
版主想说的是文件流吗? 我之前也是怎么想的,但是MP3播放器不支持流的播放只支持文件格式播放,所以很麻烦。
黄袍披身 2014-01-22
  • 打赏
  • 举报
回复
根据访问的特征输出这个文件,而不是连接神马的.
tottyandbaty 2014-01-22
  • 打赏
  • 举报
回复
引用 3 楼 u013296118 的回复:
[quote=引用 1 楼 linux_PHP_ 的回复:] 加密成乱码? 别人怎么访问你呢? 你自己又怎么打开呢? 你是想把后面跟的数据加密吧?
------------------------------------------- 不是,我想实现一个这样的功能: 有一个MP3的播放器,然后可以播放MP3文件,我怕文件人家复制文件地址就直接下载去了,我想禁止别人下载过去,所以想出把地址加密起来。想问大虾们有没有别的方法。谢谢 [/quote] 不太可能...... 只要你用chrome,打开开发者工具,一样可以看到真实地址....
1721402711tt 2014-01-22
  • 打赏
  • 举报
回复
引用 1 楼 linux_PHP_ 的回复:
加密成乱码? 别人怎么访问你呢? 你自己又怎么打开呢? 你是想把后面跟的数据加密吧?
------------------------------------------- 不是,我想实现一个这样的功能: 有一个MP3的播放器,然后可以播放MP3文件,我怕文件人家复制文件地址就直接下载去了,我想禁止别人下载过去,所以想出把地址加密起来。想问大虾们有没有别的方法。谢谢
码无边 2014-01-22
  • 打赏
  • 举报
回复
Hx_Moon_ 2014-01-22
  • 打赏
  • 举报
回复
加密成乱码? 别人怎么访问你呢? 你自己又怎么打开呢? 你是想把后面跟的数据加密吧?
define(‘APPTYPEID’, 2);//应用类型 define(‘CURSCRIPT’, ‘forum’);//当前脚本 require ‘./source/class/class_core.php’;//加载核心 require ‘./source/function/function_forum.php’; $discuz = & discuz_core::instance();//实例化 使用此种方法是为了兼容PHP4 与PHP5 复制代码 这里我们进到./source/class/class_core.php 看看这个核心类 首先来分别看看这些属性 var $db = null;//存储数据库对象 var $mem = null;//存储内存缓存对象 var $session = null;////存储session var $config = array();//存储配置数组 var $var = array();//系统常用变量 var $cachelist = array();//存储缓存数组 复制代码 我们先根据属性名来标注他们要储存的东西,这些东西肯定非常有用供以后的代码去掉用的 接着往下看看构造函数 function discuz_core() {//构造方法 $this->_init_env();//初始化环境变量 $this->_init_config();//初始化配置信息 $this->_init_input();//初始化用户输入 $this->_init_output();//初始化用户输出 } 复制代码 当然到目前为止我们都还只是猜测,我们来看看具体的代码 本帖最后由 蜗牛 于 2010-6-15 17:38 编辑 function _init_env() { //设置错误报告等级 以及关闭自动转义 error_reporting(E_ERROR); if(phpversion() < ‘5.3.0′) { set_magic_quotes_runtime(0); } //设置常用常量,最主要是判断是否支持某些函数 define(‘DISCUZ_ROOT’, substr(dirname(__FILE__), 0, -12));//程序根目录 define(‘MAGIC_QUOTES_GPC’, function_exists(‘get_magic_quotes_gpc’) && get_magic_quotes_gpc());//获取是否开启了自动转义 define(‘ICONV_ENABLE’, function_exists(‘iconv’));//iconv函数是否存在 define(‘MB_ENABLE’, function_exists(‘mb_convert_encoding’));//mb_convert_encoding函数是否存在 define(‘EXT_OBGZIP’, function_exists(‘ob_gzhandler’));//ob_gzhandler函数是否存在 define(‘TIMESTAMP’, time());//得到程序执行前的时间戳 $this->timezone_set();//设置时区,但是为何在这个方法里 没有传入8这个参数以设置我们的东八区? //加载核心函数 if(!defined(‘DISCUZ_CORE_FUNCTION’) && !@include(DISCUZ_ROOT.’./source/function/function_core.php’)) { $this->error(‘function_core.php is missing’); } //得到是否是机器人 define(‘IS_ROBOT’, checkrobot()); /* 去除’GLOBALS’ => 1, ‘_GET’ => 1, ‘_POST’ => 1, ‘_REQUEST’ => 1, ‘_COOKIE’ => 1, ‘_SERVER’ => 1, ‘_ENV’ => 1, ‘_FILES’ => 1, 外的所有超级全局变量 */ foreach ($GLOBALS as $key => $value) { if (!isset($this->superglobal[$key])) { $GLOBALS[$key] = null; unset($GLOBALS[$key]); } } global $_G; $_G = array( ‘uid’ => 0,//用户ID ‘username’ => ”,//用户名 ‘adminid’ => 0,//管理员ID ‘groupid’ => 1,//用户组 ’sid’ => ”,//加密后的SID ‘formhash’ => ”,//跟提交表单有关的HASH数据 ‘timestamp’ => TIMESTAMP,//程序执行时的时间戳 ’starttime’ => dmicrotime(),//程序开始执行的时间 ‘clientip’ => $this->_get_client_ip(),//用户IP ‘referer’ => ”,//用来记录来路URL ‘charset’ => ”,//字符编码 ‘gzipcompress’ => ”, ‘authkey’ => ”,//跟加密有关的authkey ‘timenow’ => array(), ‘PHP_SELF’ => ”,//请求的URL ’siteurl’ => ”,//站点地址 ’siteroot’ => ”,//站点根目录 ‘config’ => array(),//配置信息 ’setting’ => array(),//设置信息 ‘member’ => array(),//用户有关信息 ‘group’ => array(),//用户组信息 ‘cookie’ => array(),//cookie信息 ’style’ => array(),//风格信息 ‘cache’ => array(),//缓存数组 ’session’ => array(),//session信息 ‘lang’ => array(),//语言包 ‘my_app’ => array(), ‘my_userapp’ => array(), ‘fid’ => 0,//论坛版块ID ‘tid’ => 0,//帖子ID ‘forum’ => array(), ‘rssauth’ => ”, ‘home’ => array(), ’space’ => array(), ‘block’ => array(), ‘article’ => array(), ‘action’ => array( ‘action’ => APPTYPEID, ‘fid’ => 0, ‘tid’ => 0, ) ); //得到所执行的脚本 比如index.php $_G['PHP_SELF'] = htmlspecialchars($_SERVER['SCRIPT_NAME'] ? $_SERVER['SCRIPT_NAME'] : $_SERVER['PHP_SELF']); //当前脚本 比如forum $_G['basescript'] = CURSCRIPT; //站点地址 $_G['siteurl'] = htmlspecialchars(‘http://’.$_SERVER['HTTP_HOST'].preg_replace(“/\/+(api)?\/*$/i”, ”, substr($_G['PHP_SELF'], 0, strrpos($_G['PHP_SELF'], ‘/’))).’/'); //站点目录 $_G['siteroot'] = substr($_G['PHP_SELF'], 0, -strlen(basename($_G['PHP_SELF']))); //将数据存在$var属性中 $this->var = & $_G; } 复制代码 我们从上面的代码可以看出_init_env()的作用是用来初始化程序的执行环境的,其中包含 1:得到一些环境信息,就是那段define 常量设置语句 2:得到一些常用常量: DISCUZ_ROOT 程序根目录 TIMESTAMP 程序执行时间戳 IS_ROBOT是否为机器人 3:最重要的是初始化一个全局数组(这里说并不是超级全局变量)$_G数组与 $this->var属性,其中$_G数组是供外部代码掉用的,而$this->var是类内部掉用的(这个只是猜测) 这个函数得到了一些重要信息 DISCUZ_ROOT 程序根目录 TIMESTAMP 程序执行时间戳 IS_ROBOT是否为机器人 $_G[‘timestamp’]程序执行时间 $_G[‘starttime’]程序开始执行时间 $_G[‘clientip’]访问者IP $_G['PHP_SELF']执行的脚本名称 例如index.php $_G['basescript'] 当前脚本例如forum 这个是在入口处定义的 $_G['siteurl']站点地址 $_G['siteroot'];程序根目录,这个跟DISCUZ_ROOT的区别是, DISCUZ_ROOT是绝对路径,$_G['siteroot'];是相对站点跟目录的 相对路径 本帖最后由 蜗牛 于 2010-6-15 18:01 编辑 function _init_config() { $_config = array();//初始化配置数组 @include DISCUZ_ROOT.’./config/config_global.php’;//加载配置文件 if(empty($_config)) {//配置文件不存在则提示出错 error(‘config_notfound’); } //得到加密用的密钥 $_config['security']['authkey'] = empty($_config['security']['authkey']) ? md5($_config['cookie']['cookiepre'].$_config['db'][1]['dbname']) : ($_config['security']['authkey']); //将配置信息存在config属性中 $this->config = & $_config; //是否开启debug模式 if(empty($this->config['debug']) || !file_exists(libfile(‘function/debug’))) { define(‘DISCUZ_DEBUG’, false); } elseif($this->config['debug'] === 1 || $this->config['debug'] === 2 || !empty($_REQUEST['debug']) && $_REQUEST['debug'] === $this->config['debug']) { define(‘DISCUZ_DEBUG’, true); if($this->config['debug'] == 2) { error_reporting(E_ALL); } } else { define(‘DISCUZ_DEBUG’, false); } $GLOBALS['_G']['config'] = & $this->config; $GLOBALS['_G']['authkey'] = md5($this->config['security']['authkey'].$_SERVER['HTTP_USER_AGENT']); //静态文件目录 define(‘STATICURL’, !empty($this->config['output']['staticurl']) ? $this->config['output']['staticurl'] : ’static/’); } 这个方法做了下面几件事: 1:设置加密密钥 2:是否开启debug模式 3:将配置文件/config/config_global.php中的数据存在$this->config 属性与$_G['config']中 得到有用的数据是 1:$_G['authkey'] 全局加密密钥 2:STATICURL 静态文件目录 同时我们知道如何开启DiscuzX的debug模式 1:在配置文件/config/config_global.php中设置$_config['debug']=1或者$_config['debug']=2 如果为2就直接开启debug模式否则让DISCUZ_DEBUG常量为true,还有中方法是通过POST或者GET方式传递一个debug参数进去,并且这个参数与$_config['debug']的值一样。 当然这些所有的前提是source\function\function_debug.php文件要存在,但是官方下的程序里面并没有这个文件,也许这个是官方自己用来测试的吧 function _init_input() {//输入信息初始化 //防止注入变量 if (isset($_GET['GLOBALS']) ||isset($_POST['GLOBALS']) || isset($_COOKIE['GLOBALS']) || isset($_FILES['GLOBALS'])) { error(‘request_tainting’); } //是否开启rewrite if(!empty($_GET['rewrite'])) { $query_string = ‘?mod=’; $param = explode(‘-’, $_GET['rewrite']); $query_string .= $_GET['mod'] = $param[0]; array_shift($param); $paramc = count($param); for($i = 0;$i < $paramc;$i+=2) { $_REQUEST[$param[$i]] = $_GET[$param[$i]] = $param[$i + 1]; $query_string .= ‘&’.$param[$i].’=’.$param[$i + 1]; } $_SERVER['QUERY_STRING'] = $query_string; unset($param, $paramc, $query_string); } //如果没有开启自动转义 则将GPCF自动转义 if(!MAGIC_QUOTES_GPC) { $_GET = daddslashes($_GET); $_POST = daddslashes($_POST); $_COOKIE = daddslashes($_COOKIE); $_FILES = daddslashes($_FILES); } /*将cookie中加上了前缀的数据 去掉前缀存在$this->var['cookie']数组中*/ $prelength = strlen($this->config['cookie']['cookiepre']); foreach($_COOKIE as $key => $val) { if(substr($key, 0, $prelength) == $this->config['cookie']['cookiepre']) { $this->var['cookie'][substr($key, $prelength)] = $val; } } //是否开启diy $_GET['diy'] = empty($_GET['diy']) ? ” : $_GET['diy']; //将所有POST,GET来的数据存在$this->var['gp_'.$k]中 foreach(array_merge($_POST, $_GET) as $k => $v) { $this->var['gp_'.$k] = $v; } //mod方法,DX根据不同的MOD来掉用不同的文件,例如forum.php中require DISCUZ_ROOT.’./source/module/forum/forum_’.$mod.’.php’; $this->var['mod'] = empty($this->var['gp_mod']) ? ” : htmlspecialchars($this->var['gp_mod']); //是否是AJAX掉用的 $this->var['inajax'] = empty($this->var['gp_inajax']) ? 0 : ($_SERVER['REQUEST_METHOD'] == ‘GET’ && $_SERVER['HTTP_X_REQUESTED_WITH'] == ‘XMLHttpRequest’ || $_SERVER['REQUEST_METHOD'] == ‘POST’ ? 1 : 0); //页码 $this->var['page'] = empty($this->var['gp_page']) ? 1 : max(1, intval($this->var['gp_page'])); //用户登录后的COOKIE信息 $this->var['sid'] = $this->var['cookie']['sid'] = isset($this->var['cookie']['sid']) ? htmlspecialchars($this->var['cookie']['sid']) : ”; } 复制代码 从上面代码可以看出这个方法做了下面几件事 1:实现GPC机制,对用户提交来的数据进行自动转义 2:防止变量注入 3:启用rewrite机制后的 网址分发 4:设置COOKIE 5:将所有GET以及POST来的数据存在$this->var['gp_'.$k]中 得到的有用数据为: 1:$this->var['cookie']中存有所有COOKIE信息 2:$_GET['diy'],是否启用DIY 3:$this->var['gp_'.$k] 存有所有用户POST GET来的数据 4:$this->var['mod'],掉用哪个模块 5:$this->var['inajax']是否是AJAX掉用该页面 6:$this->var['page']页码 7:$this->var['sid'] 用户的登录验证信息 function _init_output() { //防止用户提交恶意的URL地址疑问 为何不放在_init_input里面 if($this->config['security']['urlxssdefend'] && !empty($_SERVER['REQUEST_URI'])) { $temp = urldecode($_SERVER['REQUEST_URI']); if(strpos($temp, ‘<’) !== false || strpos($temp, ‘”‘) !== false) { error(‘request_tainting’); } } //是否开启GZIP压缩,并且不是通过AJAX掉用的并且掉用的模型不是attachment(也就是说不是附件)并且压缩函数存在 if($this->config['output']['gzip'] && empty($this->var['gp_inajax']) && $this->var['gp_mod'] != ‘attachment’ && EXT_OBGZIP) { ob_start(‘ob_gzhandler’); setglobal(‘gzipcompress’, true); } else { ob_start(); setglobal(‘gzipcompress’, false); } //是否强制输出头部信息,这里最主要是强制按照一定编码输出 if($this->config['output']['forceheader']) { @header(‘Content-Type: text/html; charset=’.$this->config['output']['charset']); } //设置$_G['charset'];为配置文件中的字符编码 setglobal(‘charset’, $this->config['output']['charset']); //设置字符编码 define(‘CHARSET’, $this->config['output']['charset']); } 复制代码 这个方法我就不多说了,他最主要是开启GZIP压缩,以及防止用户提交而已的URL,但是为什么 if($this->config['security']['urlxssdefend'] && !empty($_SERVER['REQUEST_URI'])) { $temp = urldecode($_SERVER['REQUEST_URI']); if(strpos($temp, ‘<’) !== false || strpos($temp, ‘”‘) !== false) { error(‘request_tainting’); } } 复制代码 这段代码不放在_init_input里面呢? 好了,经过实例化class_core.php 核心类之后程序所做的动作就已经读完了,这里最重要的是得到了一些有用的数据以供后面使用,最最重要的就是 $_G数组与$this->var属性 下面来看看都有哪些内容 常量: DISCUZ_ROOT 程序根目录 TIMESTAMP 程序执行时间戳 IS_ROBOT是否为机器人 STATICURL 静态文件目录 DISCUZ_DEBUG 是否开启DEBUG模式 CHARSET字符编码 $_G数组 $_G[‘timestamp’]程序执行时间 $_G[‘starttime’]程序开始执行时间 $_G[‘clientip’]访问者IP $_G['PHP_SELF']执行的脚本名称 例如index.php $_G['basescript'] 当前脚本例如forum 这个是在入口处定义的 $_G['siteurl']站点地址 $_G['siteroot'];程序根目录,这个跟DISCUZ_ROOT的区别是, DISCUZ_ROOT是绝对路径,$_G['siteroot'];是相对站点跟目录的 相对路径 $_G['authkey']全局加密密钥 $_G['charset'] 输出的编码(在配置文件中定义) $_G['cookie']中存有cookie数组 $_G['gp_'.$k]中存有所有的POST以及GET来的数据 $_G['gp_'.$k] 存有所有用户POST GET来的数据 $_G['mod'],掉用哪个模块 $_G['inajax']是否是AJAX掉用该页面 $_G['page']页码 $_G['sid'] 用户的登录验证信息 $_G['config']=$this->config=配置文件/config/config_global.php中的数据 $_GET['diy'],是否启用DIY 这里注意了$_G=&this->var 看完这个实例化之后,就是最重要的 $discuz->init();了
教程使用MATLAB搭建一个家庭监控系统视频温湿度报警-视频及源码下载地址.txt 系统背景:监控家里是否有陌生人闯入,家里的设备是否工作正常(北方的会员可能知道,如果家里的暖气是自供的话,冬天千万不能关暖气,否则水管容易爆裂)。所以打算自己DIY一个家庭监控系统,全部使用MATLAB自带的函数功能。使用MATLAB GUIDE设计一个操作界面,使用MATLAB图像采集/处理/机器人视觉工具箱来检测物体。 需要的硬件: 1:家里有网络(一般使用无线摄像头、无线摄像头一般有网线接口); 2:一台运行windows的电脑(能连上家里的网络即可,我用的是05年买的一个台式机,现在看来已经很落后了); 3:一个无线IP Camera(会员@梦之缘工作坊给我推荐EasyN IPCam的F系列和H3系列,因为他们提供SDK。 我现在使用的是从淘宝上购买的凯聪1018,但是他们不提供SDK,摄像头的很多功能都不方便调用。所以打算放弃凯聪,选购EasyN的IP摄像头。如果大家有好的推荐,也欢迎跟帖。硬件必须要选对); 4:一个USB温度计、湿度计(我也是在taobao上购买的,还在邮寄中,一般可以把环境温度录入Excel文件)。 希望实现的功能: (1)        无线摄像头能够检测到移动物体,系统能自动给我发邮件,并且附上当前的照片。 (2)        USB温度计检测室内温度,当温度低于15°时候,能够发邮件给我,提醒我是否忘记开暖气。当温度高于40°时候,也能够提醒我,很可能着火了。 (3)        USB湿度计检测室内湿度,如果发现湿度很大,是否表示水龙头没有关好,或者提醒我打开空调的除湿功能。 你是否有这个疑问? 一般IP Camera厂商都提供完善的物体检测、发邮件报警等功能,那有必要还要自己开发么? 我的经验是这样的,自己开发是可以实现一些自定义的功能,比如说加上一些特定的图像算法、扩展应用(邮件报警只是一个使用,是否可以实现与其他硬件的协作)等。 我计划把我的实现过程记录下来,而不是只是呈现一个最终的系统界面给大家。我每天添加一些类容,公布一些进展,并且上传不同阶段的程序。这样做的好处是可以把整个系统分散开来,不同会员可以根据自己的需要摘取系统里的一些功能。跟我以前给的教程类似,我一般只是给一个大体的可以工作的框架,希望感兴趣的会员能完善整个系统的功能。 所有开发都基于MATLAB R2012a, 需要用到的MATLAB工具箱(不断添加中): MATLAB MATLAB图像处理工具箱 MATLAB图像采集工具箱 ======================== 2012年7月22日 ======================== 实现功能: 1:搭建一个基础的GUI框架; 2:实现MATLAB读取IP摄像头: 修改了urlwrite函数,改成urlwrite_basicauth。原因是一般IP camera需要用户名和密码,而现有的imread不能提供用户名和密码。修改了MATLAB图像工具箱里自带的imread函数,改成imread_auth,使之调用urlwrite_basicauth。使用MATLAB的timer功能,不间断读取图像,用户可以在GUI上修改帧率。 常见问题: 用户名和密码怎么修改? 答:在urlwrite_basicauth.m,搜索urlConnection.setRequestProperty;复制代码其中的aWxvdmVtYXRsYWI6MTIzNDU2是加密后的用户名和密码。 压缩包里,有一个get_code.php文件,其中“ilovematlab:123456”对应的是用户名ilovematlab和密码123456. 根据你自己的需要,修改成自己的用户名和密码。然后运行此php文件,返回值就是加密的用户名和密码。 程序打包下载: Home Security System 12-07-22.zip 使用MATLAB搭建一个家庭监控系统(视频 温湿度 报警) MATLAB 视频监控系统.png 使用MATLAB搭建一个家庭监控系统(视频 温湿度 报警) MATLAB读取IP Camera.png ======================== 2012年8月05日 ======================== 更新: 用户可以自定义采集图像的URL地址,用户可以根据自己自定义的IP地址,输入到imrea
教程使用MATLAB搭建一个家庭监控系统视频温湿度报警-国外开放IP Camera在线访问地址.txt 系统背景:监控家里是否有陌生人闯入,家里的设备是否工作正常(北方的会员可能知道,如果家里的暖气是自供的话,冬天千万不能关暖气,否则水管容易爆裂)。所以打算自己DIY一个家庭监控系统,全部使用MATLAB自带的函数功能。使用MATLAB GUIDE设计一个操作界面,使用MATLAB图像采集/处理/机器人视觉工具箱来检测物体。 需要的硬件: 1:家里有网络(一般使用无线摄像头、无线摄像头一般有网线接口); 2:一台运行windows的电脑(能连上家里的网络即可,我用的是05年买的一个台式机,现在看来已经很落后了); 3:一个无线IP Camera(会员@梦之缘工作坊给我推荐EasyN IPCam的F系列和H3系列,因为他们提供SDK。 我现在使用的是从淘宝上购买的凯聪1018,但是他们不提供SDK,摄像头的很多功能都不方便调用。所以打算放弃凯聪,选购EasyN的IP摄像头。如果大家有好的推荐,也欢迎跟帖。硬件必须要选对); 4:一个USB温度计、湿度计(我也是在taobao上购买的,还在邮寄中,一般可以把环境温度录入Excel文件)。 希望实现的功能: (1)        无线摄像头能够检测到移动物体,系统能自动给我发邮件,并且附上当前的照片。 (2)        USB温度计检测室内温度,当温度低于15°时候,能够发邮件给我,提醒我是否忘记开暖气。当温度高于40°时候,也能够提醒我,很可能着火了。 (3)        USB湿度计检测室内湿度,如果发现湿度很大,是否表示水龙头没有关好,或者提醒我打开空调的除湿功能。 你是否有这个疑问? 一般IP Camera厂商都提供完善的物体检测、发邮件报警等功能,那有必要还要自己开发么? 我的经验是这样的,自己开发是可以实现一些自定义的功能,比如说加上一些特定的图像算法、扩展应用(邮件报警只是一个使用,是否可以实现与其他硬件的协作)等。 我计划把我的实现过程记录下来,而不是只是呈现一个最终的系统界面给大家。我每天添加一些类容,公布一些进展,并且上传不同阶段的程序。这样做的好处是可以把整个系统分散开来,不同会员可以根据自己的需要摘取系统里的一些功能。跟我以前给的教程类似,我一般只是给一个大体的可以工作的框架,希望感兴趣的会员能完善整个系统的功能。 所有开发都基于MATLAB R2012a, 需要用到的MATLAB工具箱(不断添加中): MATLAB MATLAB图像处理工具箱 MATLAB图像采集工具箱 ======================== 2012年7月22日 ======================== 实现功能: 1:搭建一个基础的GUI框架; 2:实现MATLAB读取IP摄像头: 修改了urlwrite函数,改成urlwrite_basicauth。原因是一般IP camera需要用户名和密码,而现有的imread不能提供用户名和密码。修改了MATLAB图像工具箱里自带的imread函数,改成imread_auth,使之调用urlwrite_basicauth。使用MATLAB的timer功能,不间断读取图像,用户可以在GUI上修改帧率。 常见问题: 用户名和密码怎么修改? 答:在urlwrite_basicauth.m,搜索urlConnection.setRequestProperty;复制代码其中的aWxvdmVtYXRsYWI6MTIzNDU2是加密后的用户名和密码。 压缩包里,有一个get_code.php文件,其中“ilovematlab:123456”对应的是用户名ilovematlab和密码123456. 根据你自己的需要,修改成自己的用户名和密码。然后运行此php文件,返回值就是加密的用户名和密码。 程序打包下载: Home Security System 12-07-22.zip 使用MATLAB搭建一个家庭监控系统(视频 温湿度 报警) MATLAB 视频监控系统.png 使用MATLAB搭建一个家庭监控系统(视频 温湿度 报警) MATLAB读取IP Camera.png ======================== 2012年8月05日 ======================== 更新: 用户可以自定义采集图像的URL地址,用户可以根据自己自定义的IP地
教程使用MATLAB搭建一个家庭监控系统视频温湿度报警-HomeSecuritySystem2013_04_23.zip 系统背景:监控家里是否有陌生人闯入,家里的设备是否工作正常(北方的会员可能知道,如果家里的暖气是自供的话,冬天千万不能关暖气,否则水管容易爆裂)。所以打算自己DIY一个家庭监控系统,全部使用MATLAB自带的函数功能。使用MATLAB GUIDE设计一个操作界面,使用MATLAB图像采集/处理/机器人视觉工具箱来检测物体。 需要的硬件: 1:家里有网络(一般使用无线摄像头、无线摄像头一般有网线接口); 2:一台运行windows的电脑(能连上家里的网络即可,我用的是05年买的一个台式机,现在看来已经很落后了); 3:一个无线IP Camera(会员@梦之缘工作坊给我推荐EasyN IPCam的F系列和H3系列,因为他们提供SDK。 我现在使用的是从淘宝上购买的凯聪1018,但是他们不提供SDK,摄像头的很多功能都不方便调用。所以打算放弃凯聪,选购EasyN的IP摄像头。如果大家有好的推荐,也欢迎跟帖。硬件必须要选对); 4:一个USB温度计、湿度计(我也是在taobao上购买的,还在邮寄中,一般可以把环境温度录入Excel文件)。 希望实现的功能: (1)        无线摄像头能够检测到移动物体,系统能自动给我发邮件,并且附上当前的照片。 (2)        USB温度计检测室内温度,当温度低于15°时候,能够发邮件给我,提醒我是否忘记开暖气。当温度高于40°时候,也能够提醒我,很可能着火了。 (3)        USB湿度计检测室内湿度,如果发现湿度很大,是否表示水龙头没有关好,或者提醒我打开空调的除湿功能。 你是否有这个疑问? 一般IP Camera厂商都提供完善的物体检测、发邮件报警等功能,那有必要还要自己开发么? 我的经验是这样的,自己开发是可以实现一些自定义的功能,比如说加上一些特定的图像算法、扩展应用(邮件报警只是一个使用,是否可以实现与其他硬件的协作)等。 我计划把我的实现过程记录下来,而不是只是呈现一个最终的系统界面给大家。我每天添加一些类容,公布一些进展,并且上传不同阶段的程序。这样做的好处是可以把整个系统分散开来,不同会员可以根据自己的需要摘取系统里的一些功能。跟我以前给的教程类似,我一般只是给一个大体的可以工作的框架,希望感兴趣的会员能完善整个系统的功能。 所有开发都基于MATLAB R2012a, 需要用到的MATLAB工具箱(不断添加中): MATLAB MATLAB图像处理工具箱 MATLAB图像采集工具箱 ======================== 2012年7月22日 ======================== 实现功能: 1:搭建一个基础的GUI框架; 2:实现MATLAB读取IP摄像头: 修改了urlwrite函数,改成urlwrite_basicauth。原因是一般IP camera需要用户名和密码,而现有的imread不能提供用户名和密码。修改了MATLAB图像工具箱里自带的imread函数,改成imread_auth,使之调用urlwrite_basicauth。使用MATLAB的timer功能,不间断读取图像,用户可以在GUI上修改帧率。 常见问题: 用户名和密码怎么修改? 答:在urlwrite_basicauth.m,搜索urlConnection.setRequestProperty;复制代码其中的aWxvdmVtYXRsYWI6MTIzNDU2是加密后的用户名和密码。 压缩包里,有一个get_code.php文件,其中“ilovematlab:123456”对应的是用户名ilovematlab和密码123456. 根据你自己的需要,修改成自己的用户名和密码。然后运行此php文件,返回值就是加密的用户名和密码。 程序打包下载: Home Security System 12-07-22.zip 使用MATLAB搭建一个家庭监控系统(视频 温湿度 报警) MATLAB 视频监控系统.png 使用MATLAB搭建一个家庭监控系统(视频 温湿度 报警) MATLAB读取IP Camera.png ======================== 2012年8月05日 ======================== 更新: 用户可以自定义采集图像的URL地址,用户可以根据自己自定义的IP地址,输入到imread里用户可以自定义用户名和密码(通过全局变量实现)优化了一些exception的处理 程序打包下载: Home Security System 12-08-05.zip MATLAB Control IP Camera using Wireless network MATLAB读取IP摄像头图像.png MATLAB Control IP Camera using Wireless network ======================== 2012年8月28日 ======================== 更新: 完成了时间的配置 matlab实现远程监控.png MATLAB实现远程监控 程序打包下载: Home Security System 12-08-28.zip MATLAB远程监控 ======================== 2012年9月4日 ======================== 更新: 添加了MATLAB发送邮件功能,可以设置smtp服务器,支持3个收件人 matlab发送电子邮件实现远程监控.png matlab发送smtp邮件实现远程监控 程序打包下载: Home Security System 12-09-04.zip MATLAB发送电子邮件实现远程监控 ======================== 2013年4月23日 ======================== 更新(完整版功能): 添加了温度、湿度的监控(温湿度计是从淘宝上购买的,二合一,插USB接口,可以产生txt文件)摄像头的用户名和密码不需要使用php文件加密即可使用(感谢论坛会员提供的代码)MATLAB视频监控里,添加了:定时发送、移动物体检测和人脸检测GUI选择日期的时候使用了日期输入控件温度、湿度使用了inputdlg获取范围 HomeMonitoringFinal_FaceDetection.png MATLAB视频监控 人脸检测 移动物体检测 完整程序附加温湿度测试文件打包下载: HomeSecuritySystem2013_04_23.zip MATLAB人脸识别 温度湿度监控 远程监控

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧