电容屏物体识别手工制作
电容屏识别物体效果2
电容屏识别物体效果1
电容屏识别物体效果3
电容屏识别物体效果4
电容识别物理效果5
我们感兴趣的是找到让我们的平面屏幕与物理三维物体和表面交互的方法。
触摸屏无处不在,成千上万的应用程序中有多种设备和屏幕格式,但我们只找到了一些可以实现对象交互的选项。
我们可以想象有很多创造性的机会来连接这两个世界——你可以通过数字应用程序触摸到的物体和材料,这些应用程序能够显示丰富的交互式内容。
我们的教程建议了使用openFrameworks应用程序创建带有电容触摸屏的对象跟踪的方法。该应用程序可以在Windows或iOS上运行。您将需要openFrameworks的编码经验来运行对象检测应用程序并创建自己的交互式内容。
请注意,本教程处于实验阶段,还有改进的空间。我们希望您能提出建议和问题!
技术背景
为了了解我们的来源,我们需要回到使用相机的红外丙烯酸投影触摸屏,有一些系统能够检测触摸以及基准标记和物体。
为了了解我们的来源,我们需要回到使用相机的红外丙烯酸投影触摸屏,有一些系统能够检测触摸以及基准标记和物体。
( How to make one :
https://www.instructables.com/id/Multi-touch-Table
https://www.instructables.com/id/How-to-build-a-Multi-Touch-surface/
http://ccv.nuigroup.com/#home
In 2012 we created one using ccv )
现在,这项技术的使用越来越少,电容式触摸屏(与我们的智能手机触摸屏相同)也越来越普遍。电容式触摸屏非常准确,价格低廉,使用简单。然而,与红外丙烯酸投影不同,没有常见的方法来创建与对象的交互。我们看到的这种技术的唯一例子是来自Volumique公司,我们相信他们使用的技术与我们在本教程中展示的技术类似。
步骤一:
对于我们的演示,我们使用了以下材料(附属链接)
- 电容式触摸屏http://amzn.to/2ctA8ZLIiyama ProLite T2336MSC-B2或http://amzn.to/2ctA8ZLiPad。请注意,您必须选择电容式触摸屏或具有3个以上触摸点的设备(在屏幕上交互的每个对象需要3个触摸点,通常最近的电容式触摸屏幕支持10点触摸,因此可能同时检测到3个对象+1根手指)
- 与触摸屏建立接触点的垫子-http://amzn.to/2ctzgEp地板保护毡垫。注意,我们第一次尝试使用塑料垫http://amzn.to/2ctzgEp,但它在屏幕上滑动不好,所以除非你想让物体粘在屏幕上,否则请使用较软的材料,如毛毡垫
- 电动油漆http://amzn.to/2cmS4Jm或http://amzn.to/2cmS8JaBare导电涂料
- 油漆刷http://amzn.to/2cmR1cx
- 具有一个平面的对象。
以上链接可能在国内打不开。
步骤2 使用原理

我们正在触摸屏上创建三个形成三角形的触摸点。
该软件正在检测所有触摸点并寻找等腰三角形图案。
我们选择检测具有不同顶角的等腰三角形,这样我们就可以检测不同的物体。此外,知道三角形的顶点,我们可以找到物体的方向/旋转角度。物体的中心估计在三角形的中心。
步骤3:打印和修改标记模板

我们建议使用1到13个不同的对象。如果你想使用多达13个或更多不同的对象,你需要创建非常准确的标记。在获得令人满意的结果之前,您可能需要对具有不同角度的不同三角形进行实验。
您可以创建不同大小的三角形,对于我们提供的小型软件来说,重要的是保持相同的顶角。
步骤4:制作或寻找物体(原文翻译后为对象)


比如橡皮块、长方形的木头块、有具体形状的物理对象。
物体需要至少有一个平面,可以放在屏幕上。
在我们的演示中,我们使用模具制作技术创建了几何形状。我们用海藻酸盐制作了模具,因为它凝固得很快,可以与陶瓷粉末等大多数材料一起使用,我们将其与颜料混合制成我们的物体。我们期待着看到您将使用什么样的物品!
步骤5:创建标记





尽可能准确地按照打印的三角形模板,将3个凸起的垫子粘在物体的平面上
使用导电油墨,在焊盘表面涂漆
用导电墨水连接3个焊盘和物体
如果你不使用导电物体,你需要创建一个连接点,你可以用手在物体的顶部或侧面到达。该点还需要连接到焊盘。
当导电油墨干燥后,您就可以为下一部分做好准备了。
步骤6:准备软件
您需要在系统上设置并运行openFrameworks。
从以下位置下载触摸应用程序:
https://github.com/paul-ferragut/oscTouchObject(windows和openFrameworks,依赖于外部附加组件https://github.com/nneonneo/ofxWin8Touch)
https://github.com/paul-ferragut/iOSoscTouchObject(不幸的是,iOS和openFrameworks,您需要是一名获得许可的苹果开发者才能在iOS上编译该应用程序)
在运行该应用程序之前,您需要修改文件bin/data/settings.xml。在settings.xml文件中写入您正在使用的等腰三角形标记的顶角并保存该文件(例如:在示例图像中,我们使用4个顶角分别为38、91、150和165的对象)
您可以选择使用OSC协议与另一个应用程序通信,您需要更改settings.xml文件中的localhost地址和端口。此外,文件touchObject.h中有一个名为#USE_OSC的标志,您需要取消注释该标志。如果你不需要OSC,你可以注释#USE_OSC标志
当应用程序启动时,您将看到一个带有GUI的暗屏幕。根据您的屏幕分辨率和三角形标记的宽度,您需要调整滑块“distance triangle”。此变量会更改要检测的三角形的最小距离。您可以在屏幕上用3根手指模拟一个标记并形成一个三角形(请参见gif)。
在您能够测试您的对象和标记检测后,您可以开始创建自己的交互式内容!
在我们的演示中,我们用以下openFrameworks插件玩得很开心:
https://github.com/vanderlin/ofxBox2d
https://github.com/bakercp/ofxLight2D
https://github.com/tado/ofxLiquidFun
https://github.com/jacres/of-DeferredRendering
相关文章:
电容屏物体识别手工制作
电容屏识别物体效果2 电容屏识别物体效果1 电容屏识别物体效果3 电容屏识别物体效果4 电容识别物理效果5 我们感兴趣的是找到让我们的平面屏幕与物理三维物体和表面交互的方法。 触摸屏无处不在,成千上万的应用程序中有多种设备和屏幕格式,但我们只找到…...
13JVM进阶
JVM内存模型 1、线程私有的数据区 1)、程序计数器 我们知道,线程是CPU调度的基本单位。在多线程情况下,当线程数超过CPU数量或CPU内核数量时,线程之间就要根据 时间片轮询抢夺CPU时间资源。也就是说,在任何一个确定的时刻&#…...
java与c++中的交换方法
最近在写算法的时候,遇到一个问题。 java中编写swap(交换)方法还需要传入一个数组,但是在c中则不需要。 可以看到,在没有传入数组进行交换数组元素的时候,交换前与交换后的值是一样的。 而在c中ÿ…...
OpenCV中world模块介绍
OpenCV中有很多模块,模块间保持最小的依赖关系,用户可以根据自己的实际需要链接相关的库,而不需链接所有的库,这样在最终交付应用程序时可以减少总库的大小。但如果需要依赖OpenCV的库太多,有时会带来不方便,此时可以使…...
IMX6ULL板开发——第一个应用程序
实现第一个应用程序:在IMX6ULL开发板上运行程序hello.c #include <stdio.h>/* 执行命令: ./hello weidongshan* argc 2* argv[0] ./hello* argv[1] weidongshan*/int main(int argc, char **argv) {if (argc > 2)printf("Hello, %s!\n", arg…...
MyBatis Generator - 快速生成 实体类 和 映射文件
目录 一、MyBatis Generator 的使用 1.1、生成类和映射文件 1.1.1、在 pom.xml 中引入依赖 1.1.2、根据 configurationFile 标签中配置的路径 创建 generatorConfig.xml 文件 1.1.3、自动生成类 和 映射文件 1.1.4、在 Insert 标签中添加获取主键值的选项 1.1.5、扫描配置…...
点击查看详情 | 网页版微信客户管理系统如何操作试用?
微信作为我们日常生活中最常用的社交应用之一,早已成为我们与朋友、家人和同事保持联系的重要工具,也是营销引流的重要平台。 通过微信营销,可以比较精准定向亲近用户。而微信的功能并没有很能满足做微信营销的人群,所以我们需要借…...
新加坡攻略
文章目录 基础信息入境行李App电信交通餐饮购物法规旅游牛车水(Chinatown)克拉码头(Clarke Quay)东海岸(East Coast)丹戎巴葛(Tanjong Pagar)滨海湾(Marina Bayÿ…...
AM@导数的应用@二阶导数的应用@函数的性态研究@函数图形的绘制
文章目录 概念称呼说明驻点极值和极值点最值极值点和最值比较曲线的凹凸性凹凸性判定定理👺例证明 凹凸性和单调性无必然关系拐点寻找拐点👺 函数图形的绘制例 概念 本文讨论导数的应用:利用导数研究函数的性态相关定理主要通过Lagrange中值定理进行推导…...
【2024秋招】2023-9-14 最右后端开发线下一面
1 自我介绍 2 计算机网络 2.1 说说你对tcp滑动窗口的理解 TCP 滑动窗口是 TCP 协议流量控制的一个重要机制。它的主要目的是确保发送方不会因为发送太多数据而使接收方不堪重负。下面我会详细地描述滑动窗口的概念: 窗口的大小: 滑动窗口的大小&#…...
uniapp无感刷新token实现过程
路漫漫其修远兮,前端道路逐渐迷茫,时隔好久好久终于想起了我还有一个小博客,最近在一直在弄uniapp,属实有被恶心到,但也至少会用了,最近实现了一个比较通用的功能,就是无感刷新token,…...
一步步掌握Java IO的奥秘:深入学习BIO、NIO,实现客户端与服务器通信
众所周知,Java IO是一个庞大的知识体系,很多人在学习的过程中会感到迷茫,甚至学得一头雾水,而我也曾有同样的困惑。因此,本文的目标是帮助大家一步一步深入学习Java IO,从BIO开始,然后引出JDK1.…...
MIT 生物信息课程
youtube链接 Regulatory Genomics (Lecture 07): 这门课程介绍了基因调控的概念,涉及到基因的开启和关闭。这是生物信息学中的一个核心概念,对于理解整个生物网络至关重要。 Deep Learning for Regulatory Genomics (Lecture 08): 在了解了基因调控的基…...
Windows下安装PyTorch(GPU版本)
PyTorch环境配置及安装 初步机器学习,这里记录下一些学习经过,之后以便于自己查看,同时欢迎各位大佬点评,本节是机器计算的一个包的安装和简单验证。 1.流程 确定自己的硬件信息-确定电脑有英伟达(NVIDIAÿ…...
力扣每日一题57:插入区间
题目描述: 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入&#x…...
大河弯弯:CSS 文档流与三大元素显示模式
文章目录 参考环境文档流概念三大显示模式 内联元素概念常见的内联元素宽高由内容决定 块级元素概念常见的块级元素宽度受容器影响,高度受内容影响 内联块级元素概念常见的内联块级元素折中方案 设置元素的显示模式display 属性内联元素与块级元素的切换为什么要通过…...
第六章:函数(中)
函数的参数 1.位置参数 位置参数是指函数调用时,参数的位置与函数定义中参数的位置对应,从而确定参数的值。 def fight(x,y,z):return .join((z,y,x)) fight(八神庵,打败了...
Top 10 数据恢复工具,可从iPhone 和 iPad 恢复数据
您是否正在寻找最好的 iPad 恢复软件,但不知道哪个选项最好?没有什么可担心的。本文将为您提供有关根据文件类型、设备兼容性和数据丢失原因等因素选择合适的 iPad 恢复软件的提示。此外,前 10 名提到的恢复软件是安全可靠的。 第 1 部分、iP…...
【C++程序员必修第一课】C++基础课程-14:C++ 函数(上)
1 本课主要内容: 函数是什么?函数的声明、定义和调用;函数返回值,函数参数,参数默认值函数参数不同类型的调用方式:传值、指针、数组、常量引用、引用等 2 主要知识点: 函数是什么? …...
android studio打开flutter项目报红
一、android studio打开flutter项目报红,如下图: 二、解决方法: 2.1 在这个build.gradle添加以下代码,如图: 2.2 在build.gradle最顶部添加如下代码: def localProperties new Properties() def localPr…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
