人脸pts文件检查及人脸框输出
function output()
outtxt = fopen('D:\AR database\kz.txt','wt');
:
imgpath= strcat('D:\AR database\kz\',int2str(i) , '.jpg');
img = im2uint8(imread(imgpath));
shapepath = strcat(imgpath(:end-), 'pts');
shape = double(loadshape(shapepath));
bbox = getbbox(shape);
region = enlargingbbox(bbox, 1.25);
out(outtxt, imgpath, region, shape);
%drawshapes(img, shape);
%rectangle(),bbox(),bbox(),bbox()]);
%rectangle(),region(),region(),region()]);
%i
%w = waitforbuttonpress;
end
fclose(outtxt);
end
function out(outtxt, imgpath, region, shape)
fprintf(outtxt, '%s ', imgpath);
fprintf(outtxt, ),region(),region(),region());
fprintf(outtxt, , );
:
shapes2(i, ) = shape(i, ) - region();
shapes2(i, ) = shape(i, ) - region();
fprintf(outtxt, ), shapes2(i, ));
end
fprintf(outtxt, '\n');
end
function shape = loadshape(path)
% function: load shape from pts file
file = fopen(path);
if ~isempty(strfind(path, 'COFW'))
shape = textscan(file, , );
else
shape = textscan(file, , );
end
fclose(file);
shape = shape{};
end
function drawshapes(img, shapes)
%DRAWSHAPE Summary of this function goes here
% Function: draw face landmarks on img
% Detailed explanation goes here
% Input:
% img: input image
% shapes: given face shapes
imshow(img);
hold on;
colors = {'r.' 'g.' 'b.' 'c.' 'm.' 'y.' 'k.'};
:size(shapes, )/ %
:size(shapes, ) %
scatter(shapes(*(s-) + ), shapes(*s),'w.');
scatter(shapes(*(s-) + ), shapes(*s),'k');
%text(shapes(*(s-) + ),shapes(*s),{is},'color','r');
end
end
end
function bbox = getbbox(shape)
%GETBBOX Summary of this function goes here
% Function: get the bounding box of given shape
% Detailed explanation goes here
% Input:
% shape: the shape of face
% Output:
% bbox: the bounding box of given face shape
bbox = zeros(, );
left_x = min(shape(:, ));
right_x = max(shape(:, ));
top_y = min(shape(:, ));
bottom_y = max(shape(:, ));
bbox() = left_x;
bbox() = top_y;
bbox() = right_x - left_x + ;
bbox() = bottom_y - top_y + ;
end
function region = enlargingbbox(bbox, scale)
region() = floor(bbox() - (scale - )/*bbox());
region() = floor(bbox() - (scale - )/*bbox());
region() = floor(scale*bbox());
region() = floor(scale*bbox());
% region.right_x = floor(region.left_x + region.width - );
% region.bottom_y = floor(region.top_y + region.height - );
end
人脸pts文件检查及人脸框输出的更多相关文章
- 将Mat类型坐标数据生成pts文件
前言 获取人脸特征点的坐标信息之后,想要将坐标信息shape保存为pts/asf/txt等文件格式,本文就对此进行实现. 实现过程 1.确定pts文件的书写格式: 以要生成的文件为例,书写格式如下: ...
- 百度人脸识别api及face++人脸识别api测试(python)
一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...
- ASP.NET MVC 4 (十一) Bundles和显示模式--asp.net mvc中 @Scripts.Render("~/bundles/jquery")是什么意思? 在布局文件中使用Scripts.Render()输出脚本包,Styles.Render()输出风格包:
ASP.NET MVC 4 (十一) Bundles和显示模式 ASP.NET MVC 4 引入的js打包压缩功能.打包压缩jquery目录下的文件,在布局文件中使用Scripts.Render()输 ...
- opencv实现人脸识别(二) 人脸图像采集模块
这一步我们开始搭建第一个模块,用来检测到图像中的人脸位置,并将它拍下来保存在指定路径 流程图: 代码实现: import cv2 def pic(cam): # 调用笔记本内置摄像头,所以参数为0,如 ...
- .gho文件检查
虽然目前windows10的接受程度越来越广泛,但我接触到的一些非IT人士还是钟爱于windows7系统,本文记录一下在使用ghost还原系统遇到的问题. gho还原失败 在还原ghost系统过程中, ...
- jQuery检查复选框是否被选
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程
先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...
- python工具 - alert弹框输出姓名年龄、求和
使用python自带的tkinter库进行GUI编程,完成两个功能: (1)要求用户输入姓名和年龄然后打印出来 (2)要求用户输入一个数字,然后计算1到该数字之间的和 代码部分: # 导入tkinte ...
- python筛选特定文件的信息按照格式输出到txt
最近搞数据库,为了把图片文件的信息导入数据库表中,我开始研究python列出图片文件,其中发现因为IE临时文件里有非常多的不需要的图片,就需要筛选掉一些文件. 最终用python输出了所有需要的图片文 ...
随机推荐
- 【BZOJ】1191: [HNOI2006]超级英雄Hero(二分图匹配)
http://www.lydsy.com/JudgeOnline/problem.php?id=1191 一眼题,笑嘻嘻地写了匈牙利,提交..WA了?不科学!!!!!数组小了??不思考了,改大提交,. ...
- Redis错误配置详解
在使用Redis做缓存时,应用往往能得到非常高的性能.然而,如果配置不当,你将遇到很多令人头疼的问题,比如复制缓冲区限制.复制超时等. Redis提供了许多提高和维护高效内存数据库使用的工具.在无需额 ...
- 关于iOS测试机个数上限的详细规则
关于iOS测试机个数上限的详细规则 前言 公司的iOS测试机快达到苹果规定的100个上限了,而因为the new iPad新出,我们需要新的quota来测试新iPad,所以就仔细研究了一下苹果关于10 ...
- hdu Line belt
这道题是一道3分搜索的题.其实这种题很多时候都出现在高中的解析几何上,思路很简单,从图中可以看到,肯定在AB线段和CD线段上各存在一点x和y使得所花时间最少 因为AB和CD上的时间与x和y点的坐标都存 ...
- php5全版本绕过open_basedir读文件脚本
这是前段时间写的代码了(http://www.weibo.com/1074745063/ByAPqj7s0),最近一直忙着和几个同学一起做非安全类的创业项目.所以也没拿到JAE.SAE测试一下. 不说 ...
- 如何使用CREATE INDEX语句对表增加索引?
创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.删除索引可以利用ALTER TABLE或DROP INDE ...
- java中的this与super的区别
java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...
- 学习之痛(数据库->存储过程和函数)
存储过程和函数作为数据库的一部分,为什么是学习之痛. 项目实际开发,考虑性能和代码维护,绝对不用存储过程. 如果单纯自己写个小程序糊弄人玩,还可以写写. [学习] 在数据库中定义一些SQL语句集合,然 ...
- CSS系列:长度单位&字体大小的关系em rem px
em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. 任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=1 ...
- 强、软、弱、虚引用,ReferenceQueue,WeakHashMap
强引用(Reference):所谓强引用就是普通引用.普通引用引用的对象,即使内存不足时,一般情况下也不会被回收. 软引用(weakReference):如果对象被且仅被软引用所引用时,内存不足时,会 ...