相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)

但不是这些:

<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)

我想出了这个,并希望确保我做对了.我只抓住了a-z.

<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

使用Picasa API自动进行面部检测以提取单个图像

(超级用户也向类似的问题询问了与应用程序相关的答案.这里发布的问题是收集相同的可编程解决方案)

在我的工作场所,护照大小的照片一起扫描,然后切成单独的图片并用唯一的文件编号保存.目前我们使用Paint.net手动选择,剪切和保存图片.

示例扫描文档Picasa屏幕截图:( 来自:google图片搜索多个来源,fairuse)

picasa截图

例如.在Picasa 3.8中,单击"视图">"人物",将显示所有面部,并要求我们为其命名,是否可以使用不同的图片名称自动保存这些单独的图片?

更新

我想要做的就是将上面的图片转换为单独的图片.

在上图中,我展示了Picasa 3.8如何检测图像并提示我为其命名.我不需要面部识别,我只需要面部检测.Picasa会检测单个图像并在RHS上显示它们.这些单独的图像是我需要的.Picasa会创建一个.ini文件,该文件会保存包含各个面的坐标的十六进制值.

这些单独的面孔是我感兴趣的如果我可以有坐标,我可以从图片裁剪所需的图像.

SAMPLE.jpg

sample.jpg

ini内容

 [SAMPLE.jpg]
faces=rect64(c18f4c8ef407851e),d4ff0a020be5c3c0;rect64(534a06d429ae627),dff6163dfd9d4e41;rect64(b9c100fae46b3046),e1059dcf6672a2b3;rect64(7b5105daac3a3cf4),4fc7332c107ffafc;rect64(42a036a27062a6c),ef86c3326c143248;rect64(31f4efe3bd68fd8),90158b3d3b65dc9b;rect64(327904e0614d390d),43cbda6e92fcb63e;rect64(4215507584ae9b8c),15b6a967e857f334;rect64(895d4efeb8b68425),5c4ff70ac70b27d3
backuphash=3660
Run Code Online (Sandbox Code Playgroud)

*ini文件似乎是rect64(534a06d429ae627),dff6163dfd9d4e41为每个标签保存面部标签的坐标.从Picasa帮助网站用户引用Technonath

@oedious写道: - 这有点技术性,所以坚持下去.*rect64()中包含的数字是64位十六进制数.*将其分成四个16位数字.*除以最大无符号16位数(65535),并且在0和1之间有四个数字.*剩下的四个数字给出面部矩形的相对坐标:(左,上,右,下).*如果您想要以绝对坐标结束,请按图像宽度左右多个,按图像高度左右多个.

上面的引用谈到了在rect64()中包含的数字,逗号后括号外的数字怎么样?

我问了一个相关的问题.答案也可能对你有所帮助. 从64位十六进制值中获取四个16位数字

注意:ini详细信息与为特定图像生成的picasa相同.

此问题已多次更新,可能不够清晰.

Picasa帮助网站上有一些回复,我在那里问了同一个问题该线程的答案之一是根据ini文件中的十六进制值得到坐标.以下代码位于来自帮助站点的esac的 C#中.我可以在PHP中执行相同的操作吗?

public static RectangleF GetRectangle(string hashstr)
{
    UInt64 hash = UInt64.Parse(hashstr, System.Globalization.NumberStyles.HexNumber);
    byte[] bytes = BitConverter.GetBytes(hash);

    UInt16 l16 = BitConverter.ToUInt16(bytes, 6);
    UInt16 t16 = BitConverter.ToUInt16(bytes, 4);
    UInt16 r16 = BitConverter.ToUInt16(bytes, 2);
    UInt16 b16 = BitConverter.ToUInt16(bytes, 0);

    float left = l16 / 65535.0F;
    float top = t16 …
Run Code Online (Sandbox Code Playgroud)

php api picasa face-recognition

9
推荐指数
3
解决办法
1万
查看次数

标签 统计

api ×1

face-recognition ×1

html ×1

php ×1

picasa ×1

regex ×1

xhtml ×1