数字化批次的自动JP2分析

jprofile的Python项目详细描述


#JProfile

Johan van der Knijff,知识库/荷兰国家图书馆。



*jprofile*是一个简单的工具,用于自动分析大量的*jp2*(jpeg 2000第1部分)图像。在内部,它环绕着[*jpylyzer*](http://jpylyzer.openpreservation.org/),用于验证每个图像并提取其属性。然后,*jpylyzer*输出将根据一组[*schematron*](http://en.wikipedia.org/wiki/schematron)架构进行验证,这些架构分别包含主映像、访问映像和目标映像所需的特征。


NAL供应商。这些批处理通常包含(无损压缩)*master*jp2s,(无损压缩)*access*jp2s和(有时)也包含*technical target*jp2s。这些批处理位于文件夹结构中,其中分别包含名为*master*、*access*和*targets-jp2*的(子)目录。下面是一个例子:

>
./testbatch
/><
<
访问
<
<-image000060.jp2
<-image0000661.jp2
<-image0000661.jp2
<<
{<
<
<
<
<
<
<
<
<
<
<<<<<<<<<<<<<<<<<<<<—image000061.jp2
注意:

**master*、*access*和*targets-jp2*目录可能出现在不同的嵌套级别。这没问题,因为*profile*递归地遍历一个批中的所有子目录。

*如果缺少*master*、*access*或*targets-jp2*目录,*jprofile*将简单地忽略它(即,如果您的批仅包含*master*映像,则完全可以)。

*批可能包含其他文件夹。这些被*jprofile*忽略。

许可证

*jprofile*根据[GNU Lesser General Public许可证](https://www.gnu.org/licenses/lgpl.html)发布。

安装

安装*jprofile*的最简单方法是使用[*pip*包管理器](https://en.wikipedia.org/wiki/pip(包管理器))。或者,windows用户也可以使用完全不需要python的独立二进制文件(见下文)。


您需要一个最新版本的*pip*(9.0或更高版本)。要为单个用户安装*jprofile*,请使用以下命令:


在windows上,可以通过在以管理员身份打开的命令提示符窗口中运行上述命令来完成此操作。在Linux上,使用以下命令:

sudo pip install jprofile

在这种情况下,安装步骤为:

1。从[最新版本页](https://github.com/kbnlresearch/jprofile/releases/latest)下载最新的二进制文件(64位或32位)。


2。将下载的文件解压缩到空目录。

命令行语法






若要列出所有可用的配置文件,请将*l*或*list*的值用于*profile*


profile s

a*profile*是一个*xml*格式的文件,它简单地定义了分别用于验证*jpylyzer*的主映像、访问映像和目标映像的输出的模式。这里有一个例子:

<;profile>;

<;!--示例配置文件-->;

<;schemamaster>;master300gray_2014.sch<;/schemamaster>;
<;schemaaccess>;access300colour_2014.sch<;/schemaaccess>;
<;schematarget>;master300colour_2014.sch<;/schematarget>;

<;profile>;

每个条目只包含概要文件的*名称*,而不包含其完整路径!所有配置文件都位于安装文件夹中的*profiles*目录中。

包括对分辨率或颜色空间的检查!)|
kb_u 2014.xml作为通用配置文件,但附加要求大于分辨率等于300 ppi,颜色空间为Adobe RGB 1998
kb_u 2014.xml作为通用配置文件,但附加要求大于分辨率等于300 ppi,颜色空间为灰色伽马2.2
|kb colour_u 2014.xml作为通用配置文件,但其附加要求大于分辨率等于600 ppi,颜色空间为Adobe RGB 1998
kb gray_u 2014.xml作为通用配置文件,但其附加要求大于分辨率等于360 ppi,颜色空间为灰色gamma 2.2

可以创建自定义配置文件。只需将它们添加到安装文件夹中的*profiles*目录。

它们位于安装目录中的*schemas*文件夹中。在princie中,*jpylyzer*报告的任何*属性都可以在这里使用,并且可以通过编辑模式添加新的测试。有关这方面的更多详细信息,请参阅[本博客文章](http://openpreservation.org/knowledge/blogs/2012/09/04/automated-assessment-jp2-against-technical-profile/)。

彩色空间
master600gray_u 2014。sch无损压缩主图像模式,600 ppi,灰度伽马2.2颜色空间
master300colour_u 2014。sch无损压缩主图像模式,300 ppi,Adobe RGB(1998)颜色空间
master300gray_u 2014。sch无损压缩主图像模式Ressed Master Images,300 ppi,灰色伽马2.2色空间
kbaccess_u 2014.sch根据2014年规范的无损压缩访问图像通用模式
Access600colour_u 2014.sch无损压缩访问图像模式,600 ppi,Adobe RGB(1998)色空间
Access600gRay_2014.Sch有损压缩访问图像模式,600 ppi,灰度伽马2.2颜色空间
Access300Colour_2014.Sch有损压缩访问图像模式,300 ppi,Adobe RGB(1998)颜色空间
Access300Gray_2014.Sch有损压缩访问图像模式,300 ppi,灰度Gamma 2.2颜色空间

可以创建自定义模式。只需将它们添加到安装文件夹中的*schemas*目录中即可。

2014模式概述

|:--:--
文件格式JP2(JPEG 2000第1部分)
压缩类型可逆5-3小波滤波器
颜色变换是(仅适用于彩色图像)
分解层数5
级数rpcl
平铺尺寸:1024x 1024 x 124;
代码块尺寸:64 x 64 x 64(2<;sup>;6<;lt;sup>;lt;sup>;6<;lt;sup>;lt;sup>;x 2<;sup>;6<;sup>;6<;sup>;6)x 64(2<;sup>;6<;lt;sup>;)
;区域尺寸:256 x 256 x 256(2<;sup>;2<;sup>;8<;lt;lt;sup>;lt;lt;sup>;gt;gt;gt;8<;lt;lt;sup>;gt;gt;gt;)124;质量层数11
目标压缩比层2560:1[1];1280:1[2];640:1[3];320:1[4];320:1[4];160:1[5];80:1[6];40:1[7];20:1[8];10:1[9];10:1[9];5:1[10];2.5:1[11]
错误弹性;包头开始;包头结束;分割符号
采样率存储在"捕获捕获捕获捕获"中是的解析字段
捕获元数据嵌入xmp元数据






35 35 35 35 35 35 35 35 35 \ \35 35 \35



/>


/>颜色变换是(仅适用于彩色图像)
|分解层数量5
递阶rpcl
瓷砖大小1024 x 1024 x 1024
编码块大小64 x 64 x 64(2<;sup>;6<;sup>;6<;sup>;6<;sup>;6<;sup>;6<;sup>;6<;sup<;sup>;6<;6<;sup<;sup>;2<;sup>;6<;6<;sup<;sup<;sup>;最高分辨率;128 x 128(2<;sup>;7&Lt/sup>;)对于剩余的分辨率级别
质量层的数量8
目标压缩比层2560:1[1];1280:1[2];640:1[3];320:1[4];160:1[5];80:1[6];40:1[7];20:1[8];
错误恢复能力包头的开始;包头的结束;分段符号bols
采样率存储在"捕获分辨率"字段
捕获元数据作为xmp元数据嵌入到xml框

请注意,jpylyzer无法建立各个层的压缩比,因此访问模式只检查总体压缩比(即20:1)。更具体的模式(300colour、600gray等)包含对分辨率值、颜色组件数量和嵌入ICC配置文件的附加检查。

_2014.xml
kb_300gray_.xml
kb colour_.xml
kb colour_.xml
kb戋generic_.xml






这将导致创建两个输出文件:

-`mybatch_status.csv`(状态输出文件)
-`mybatch_failed.txt`(质量评估失败的图像的详细输出)


评估状态为*通过*(通过所有测试)或*失败*(一个或多个测试失败)。这里有一个例子:


f:\test\access\mmkb03\mmkb03\000004896\u 00015\u access.jp2,pass
f:\test\access\mmkb03\mmkb03\mmkb03\000004896\u 00115\u access.jp2,pass
f:\test\access\mmkb03\000004896\u 00215\u access.jp2,pass
f:\test\targets-jp2\mmkb03\umtb03\u 20120626\u 02\u 02\u 01.jp2,fail
f:
f:
f:\fail
f:\ f:\测试/主控\ mmkb03_000004896_00015_master.jp2,pass




故障输出文件

一个或多个测试失败的任何映像都将报告在故障输出文件中。对于每个失败的映像,它包含对文件路径的完整引用,后跟特定的错误。例如:


**架构验证错误:
test"layers='11'"失败(层数错误)
test"transformation='5-3 reversible'"失败(转换错误)
test"comment='kb_master_lossless_01/01/2015'"失败(错误的代码流注释字符串)


此文件中的条目由4个字符序列分隔。请注意,这里的每一行对应于架构中的失败测试(此信息是取自*Probatron*的输出)。对于标识为无效jp2的图像,还包括来自*jpylyzer*输出的一些附加信息。例如:


**架构验证错误:
测试"isvalidjp2="true'"失败(没有有效的jp2)
**jpylyzer jp2验证错误:
测试方法有效失败
测试精度有效失败
测试Approxisvalid failed
test foundnexttilepartoreoc failed
test foundeocmarker failed
35;

这里,test*isvalidjp2*的结果表示图像不符合*jp2*规范。"jpylyzer jp2 validation errors"后面的行列出了由*jpylyzer*报告的特定错误。这些错误的含义可以在*jpylyzer*用户手册中找到。


\
-*主*映像位于名为"*master*"的目录的(子目录)中
-*access*映像位于名为"*access*"的目录的(子目录)中
-*target*映像位于名为"*targets-jp2*"的目录的(子目录)中。
-以上任一目录可能缺少torie。

除此之外,图像的组织可以遵循任何任意目录结构(*jprofile*对批处理的整个目录树进行递归扫描)


忽略(限制*python*的*glob*模块,将在未来得到解决)。


\friendly links

-[*jpylyzer*(http://jpylyzer.openpreservation.org/)
-[*schematron*(http://en.wikipedia.org/wiki/schematron)
-[使用jPylyzer和Schematron)(http://openpreservation.org/blog/2012/09/04/automated-assessment-jp2-against-technical-profile/)






欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓在java中加入字符串组以创建复合字符串   java系统甚至不点击“下一步”或“上一步”按钮就将我返回到上一页,而不是进入下一页   java如何在arrayList中获取特定列的不同值   CXF GZIP REST JAVA   Java:使用大量半恒定标志检查优化循环中的循环?   java如何在两个应用程序之间进行会话管理?   java SVG文件使用蜡染(但没有轴线)转换为PNG   使用协议缓冲区和内部数据模型的java   java如何在logtag 安卓中打印和查看字符串的值   javascript如何在NodeJs中应用Java/Spring的分层架构?   java Spring URL在JSP中编码不正确   模式对话框后面的java工具提示   java WSRPC生成日历对象而不是日期   在对象外部无法识别类变量   java将图像从文件读/写到BuffereImage的最快方法?   JavaSpring数据存储库对具有不同Id的子类使用抽象超类   安全在Java 5.0上运行web应用程序服务器有危险吗?