`

9.simple特征提取并导出

阅读更多
Mat src = Imgcodecs.imread("2023.jpg");
        // 创建SimpleBlobDetector对象
        SimpleBlobDetector detector = SimpleBlobDetector.create();
        // 检测关键点
        MatOfKeyPoint keyPoints = new MatOfKeyPoint();
        detector.detect(src, keyPoints);
        Mat descriptors = new Mat();
        detector.compute(src, keyPoints, descriptors);
        String filename = "features1.xml";
        Document doc = DocumentHelper.createDocument();
        Element root = doc.addElement("features");
        for (KeyPoint keyPoint : keyPoints.toArray()) {
            Element student = root.addElement("feature");
            student.addAttribute("x", String.valueOf(keyPoint.pt.x));
            student.addAttribute("y", String.valueOf(keyPoint.pt.y));
            student.addAttribute("size", String.valueOf(keyPoint.size));
            student.addAttribute("angle", String.valueOf(keyPoint.angle));
            student.addAttribute("response", String.valueOf(keyPoint.response));
            student.addAttribute("octave", String.valueOf(keyPoint.octave));
            student.addAttribute("class_id", String.valueOf(keyPoint.class_id));
            double[] descriptorBytes = descriptors.get(keyPoint.class_id, 0);
            byte[] byteArray = new byte[descriptorBytes.length * 8];

            ByteBuffer buffer = ByteBuffer.wrap(byteArray);
            for (double value : descriptorBytes) {
                buffer.putDouble(value);
            }
            student.setText(new String(buffer.array(), Charset.forName("UTF-8")));
        }
        doc2XmlFile(doc, filename);


public static boolean doc2XmlFile(Document document, String filename) {
        boolean flag = true;
        try {
            XMLWriter writer = new XMLWriter(new OutputStreamWriter(
                    new FileOutputStream(filename), "UTF-8"));
            writer.write(document);
            writer.close();
        } catch (Exception ex) {
            flag = false;
            ex.printStackTrace();
        }
        System.out.println(flag);
        return flag;
    }
分享到:
评论

相关推荐

    SimpleITK-1.2.0-cp36-cp36m-win_amd64.whl.zip

    6. **图像分析**:可以计算像素统计,如均值、方差、直方图等,以及特征提取,如纹理分析、形状描述符。 7. **可视化**:通过连接到VTK或ITK-viz,可以进行交互式的图像显示和三维重建。 8. **与ITK的联系**:...

    exe依赖dll提取软件

    这款“Qt打包神器”正是为了解决这个问题,它能够自动识别并提取与Qt应用程序相关的DLL文件,帮助开发者轻松打包应用,确保其在目标系统上顺利运行。 该软件的工作原理可能包括以下步骤: 1. **扫描分析**:软件会...

    java动态上传excle文件并导出数据.pdf

    Java 动态上传 Excel 文件并导出数据是一个常见的需求,特别是在数据分析、报表处理或系统集成等场景中。在 Java 开发中,我们可以利用各种库来实现这个功能,这里提到的技术涉及到了前端的文件上传和后端的数据处理...

    基于xml通用导入导出源码

    1. 解析XML:读取XML文件并将其转化为内存中的数据结构,如DOM(Document Object Model)或SAX(Simple API for XML)流式解析。 2. 数据映射:将XML元素和属性映射到程序内部的数据模型。 3. 数据转换:可能需要对...

    java实现解析从中国知网上导出的EndNote、NoteExpresss、NoteFirst、Refworks格式的文件

    总的来说,解析中国知网导出的文献管理文件是一项涉及到文件读取、XML解析、数据提取和存储的综合性任务。通过熟练运用Java的相关技术和库,我们可以构建出高效且灵活的解析工具,帮助科研人员更好地管理和分析他们...

    java xml excel文件导入导出

    在Java开发中,处理Excel和XML文件是一项常见的任务,特别是在数据导入导出、报表生成以及数据交换等场景。本文将详细讲解如何使用Java进行Excel和XML文件的解析及操作。 一、Excel文件处理 1. **Apache POI库**:...

    SaveSms.rar_SaveSMS download_simple

    1. **短信备份**:程序能够读取手机中的短信,并将其导出为数据库文件,这样即使手机丢失或更换,也能恢复重要的短信记录。 2. **分类管理**:用户可以自定义标签,对短信进行分类,如工作、个人、重要等,方便查找...

    simple csv2fxt - MetaTrader 4脚本.zip

    1. **读取CSV文件**:脚本首先打开并解析CSV文件,提取其中的日期、时间、开盘价、收盘价、最高价、最低价和交易量等关键数据。 2. **数据验证**:在将数据加载到MT4之前,脚本会检查数据的完整性和一致性,确保...

    shp文件解析java实现

    以下是一个简单的示例代码,展示了如何使用`geotools`打开`shp`文件,并提取边界线数据、中心点坐标和经纬度范围: ```java import org.geotools.data.shapefile.ShapefileDataStore; import org.geotools.feature....

    umodel_win32.zip

    压缩包中的“umodel.exe”是Umodel的执行文件,它是整个工具的核心,负责解析游戏文件并进行模型提取工作。用户只需将游戏资源文件拖放到这个程序上,就可以快速导出模型,无需复杂的编程知识或对游戏内部结构的深入...

    表格导入导出文件

    导出XML数据为表格时,反向操作,解析XML文档,提取节点信息,再按表格格式写入文件。 下面是一个简单的JDOM示例,展示如何创建一个XML文档: ```java import org.jdom2.Document; import org.jdom2.Element; ...

    Power Designer Simple Tutorial

    此外,Power Designer还支持数据仓库的结构模型设计,并具备团队协作设计的控制能力。 1. **Power Designer的功能模块**: - **Data Architect**:这是Power Designer的核心部分,用于创建和管理CDM和PDM。CDM代表...

    GEE_API2.pdf

    在遥感图像分析中,阈值分析是一个常见步骤,用于提取或分类具有特定特征的像素。文档没有涉及这方面的细节,但它是GEE分析工具包的一部分。 10. 图像导出(Exporting Images): GEE允许用户导出分析结果为图像或...

    虚幻争霸贴图提取.zip

    虚幻争霸是一款基于虚幻引擎4(UE4)开发的游戏,而"虚幻争霸贴图提取.zip"这个压缩包显然与该游戏的资源提取有关。它包含的文件是用于处理游戏内的贴图和模型数据的,这对于我们理解UE4的游戏资源管理和自定义内容...

    IOS应用源码——对xml文件的解析与导出数据存储在xml中(代码)xmlparser.zip

    总之,这个源码示例可能展示了如何使用NSXMLParser解析XML文件,提取所需数据,并将数据存储回XML文件的过程。通过深入理解XML解析和数据持久化机制,开发者可以更好地处理iOS应用中的数据交换和存储需求。

    导出CnPack RSS笑话 Delphi源码

    【标题】"导出CnPack RSS笑话 Delphi源码" 涉及的知识点主要集中在两个方面:一是 Delphi 编程环境,二是 RSS(Really Simple Syndication)技术及其在CnPack中的应用。 Delphi是Embarcadero公司开发的一种集成开发...

    Python自动化导出zabbix数据并发邮件脚本

    标题中的"Python自动化导出zabbix数据并发邮件脚本"是指使用Python编程语言编写的一段程序,该程序能够自动从Zabbix监控系统中提取数据,并将这些数据整理成报告,随后通过电子邮件发送给相关人员。Zabbix是一个开源...

    httprunner使用.doc

    在 Fiddler 中,你可以抓取网络流量并导出为 HAR 文件。 2. **HAR 文件转换为测试用例** - **Fiddler 抓包与导出**:打开 Fiddler,操作目标网站进行抓包。完成之后,选择 File > Export Sessions > Selected ...

    用snmp协议提取mib2信息

    SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于网络设备管理的协议,它允许网络管理员远程监控和管理网络设备,如路由器、交换机、服务器等。MIB(Management Information Base)是...

    p12_key.rar_p12

    文件“p12_key.c”可能包含了处理PKCS#12文件中密钥的代码实现,而“p12_kiss.c”可能是“Keep It Simple, Stupid”原则下的简化版PKCS#12操作模块。 PKCS#12的运作流程主要包括以下步骤: 1. **密钥对生成**:...

Global site tag (gtag.js) - Google Analytics