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文件检查及人脸框输出的更多相关文章

  1. 将Mat类型坐标数据生成pts文件

    前言 获取人脸特征点的坐标信息之后,想要将坐标信息shape保存为pts/asf/txt等文件格式,本文就对此进行实现. 实现过程 1.确定pts文件的书写格式: 以要生成的文件为例,书写格式如下: ...

  2. 百度人脸识别api及face++人脸识别api测试(python)

    一.百度人脸识别服务 1.官方网址:http://apistore.baidu.com/apiworks/servicedetail/464.html 2.提供的接口包括: 2.1 多人脸比对:请求多 ...

  3. 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()输 ...

  4. opencv实现人脸识别(二) 人脸图像采集模块

    这一步我们开始搭建第一个模块,用来检测到图像中的人脸位置,并将它拍下来保存在指定路径 流程图: 代码实现: import cv2 def pic(cam): # 调用笔记本内置摄像头,所以参数为0,如 ...

  5. .gho文件检查

    虽然目前windows10的接受程度越来越广泛,但我接触到的一些非IT人士还是钟爱于windows7系统,本文记录一下在使用ghost还原系统遇到的问题. gho还原失败 在还原ghost系统过程中, ...

  6. jQuery检查复选框是否被选

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. 转《trackingjs+websocket+百度人脸识别API,实现人脸签到》流程

    先用websocket与后台建立通讯:用trackingjs在页面调用电脑摄像头,监听人脸,发现有人脸进入屏幕了,就把图片转成base64字符串,通过websocket发送到后端:后端拿到图片,调用百 ...

  8. python工具 - alert弹框输出姓名年龄、求和

    使用python自带的tkinter库进行GUI编程,完成两个功能: (1)要求用户输入姓名和年龄然后打印出来 (2)要求用户输入一个数字,然后计算1到该数字之间的和 代码部分: # 导入tkinte ...

  9. python筛选特定文件的信息按照格式输出到txt

    最近搞数据库,为了把图片文件的信息导入数据库表中,我开始研究python列出图片文件,其中发现因为IE临时文件里有非常多的不需要的图片,就需要筛选掉一些文件. 最终用python输出了所有需要的图片文 ...

随机推荐

  1. POJ 3318 Matrix Multiplication(随机算法)

    题目链接 随机算法使劲水...srand((unsigned)time(0))比srand(NULL)靠谱很多,可能是更加随机. #include <cstdio> #include &l ...

  2. HttpClient_HttpClient 对 cookie的处理

    session的保持是通过cookie来维持的,所以如果用户有勾选X天内免登录,这个session 就X天内一直有效,就是通过这个cookie来维护.如果没选X天内免登录,基本上就本次才能保持sess ...

  3. Thrift入门及Java实例演示

    目录: 概述 下载配置 基本概念 数据类型 服务端编码基本步骤 客户端编码基本步骤 数据传输协议 实例演示(java) thrift生成代码 实现接口Iface TSimpleServer服务模型 T ...

  4. HttpRuntime.Cache的使用经验

    配置文件 <appSettings>   <add key="EnableCache" value="true"/>   "/ ...

  5. 提取数据用strpos函数比较,预期和实际不符问题解决

    在我提取数据时,数据是一串字符串,第一个数据和要比较的字符是相等的可是却是相反的结果 . 测试if(0==false)结果如图 执行结果 说明0和false相等.我的程序开始是这样的 第一个数据是正确 ...

  6. C# - JSON操作

    Newtonsoft.dll插件 http://download.csdn.net/detail/xinping_168/4710720 洪大师二次封装: using System; using Sy ...

  7. 《GK101任意波发生器》升级固件发布(版本:1.0.2build690)

    一.固件说明: 硬件版本:0,logic.3 固件版本:1.0.2.build690 编译日期:2015年4月24日 ====================================== 二. ...

  8. li标签行内元素高度及居中

    <head> <title><title> <style type="text/css"> * { padding: 0px; ma ...

  9. Bootstrap页面布局16 - BS导航菜单和其响应式布局以及导航中的下拉菜单

    代码: <div class='container-fluid'> <h2 class='page-header'>导航</h2> <!-- .navrbar ...

  10. Partitioning

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION The simplest scheme f ...