`

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;
    }
分享到:
评论

相关推荐

    exe依赖dll提取软件

    exe 依赖 dll 提取,Qt打包神器, 可执行程序依赖dll自动提取

    arcgis工具

    9. 共享多边形生成 Auto-complete polygon 工具生成共享边的多边形,配合snapping environment更好。 10. 画岛图 1).使用任务栏中的sketch工具,当画完外面的一圈时,右键 选择finish part 然后画中间的部分 再...

    mtail:从应用程序日志中提取白盒监视数据以收集在时间序列数据库中

    mtail是一种工具,用于从应用程序日志中提取指标,然后将其导出到时间序列数据库或时间序列计算器中,以进行警报和仪表板显示。 它通过充当不导出自身内部状态(通过日志除外)的应用程序与现有监视系统之间的粘合...

    VB网络编程实例

    ◆ 06.htm SMTP协议简介 (Simple Mail Transfer Protocol) ◆ 07.htm VB5.0 中远程数据库的访问 ◆ 08.htm VB下如何编写CRC校验程序 ◆ 09.htm VB中Winsock控制的UDP协议的使用 ◆ 10....

    Screpto - Web Scraping Made Simple-crx插件

    特点:-指向和选择界面-通过拖放直观地组织和自定义数据-实时预览结果-智能批量选择相似的元素-提取元素属性-多级嵌套支持-多种数据类型支持(对象,数组,字符串和数字)-本地导出数据-Devtools集成•在云中自动...

    JAVA上百实例源码以及开源项目

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    解析器-简单的站点抓取。「Parsers - Simple Site Scraping」「Parsers - FREE web scraper」-crx插件

    我们的技术本身会在网站上找到相似的页面,并为您提取必要的数据。 爬取基于机器学习自动进行。 与其他网页抓取工具相比,无需指定所有页面,目录,分页和其他设置。 解析器(抓取器)是从网站抓取数据的扩展。 对于...

    数据、分析代码和调查结果支持 BuzzFeed 新闻对最佳影片提名电影对话多样性的分析.zip

    然后我们将这些成绩单输入到Writer Duet脚本编写程序中,并将结果导出为 XML(与我们用于其他剧本的格式相同)。 提名影片名单来自奥斯卡奖数据库和奥斯卡网站。 角色名称和对话是从电影剧本中提取的,这些剧本...

    KODExplorer 芒果云-资源管理器

    [关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data...

    asp.net知识库

    使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的...

Global site tag (gtag.js) - Google Analytics