这是一个围绕 Lux Client windows 解决方案的 python 包装器
项目描述
该项目已弃用
请切换到 CytoSmartOpenAPI
这是 Lux Client windows 解决方案的 python 包装器。该软件包仅适用于 Windows。
安装
要安装此软件包,请按照下列步骤操作:
第 1 步:驱动程序
确保您已安装或曾经安装 CytoSmart 应用程序。推荐的是细胞计数器,因为它在关闭后不会重新启动。这是安装所有正确驱动程序所必需的。之后是否卸载该应用程序并不重要。
第二步:点安装
pip install luxconnector
用法
初始化
确保至少 1 勒克斯通过 USB3 端口物理连接到您的计算机。luxconnector 是一个保持与 Lux 连接的对象。要创建对象,请使用以下代码:
from luxconnector import LuxConnector
connector = LuxConnector(number_of_devices=2)
注意:确保 number_of_devices 至少是您连接的设备数量。如果不是,luxconnector 将永远寻找丢失的设备。
获取序列号
每个物理设备都有一个序列号。向特定设备发送命令需要此编号。
serial_numbers = connector.get_all_serial_numbers()
获取单个图像
如果您想在此时拍摄单张图像,请使用 get_image。这会将图像作为pillow image. 您需要提供您要定位的设备的序列号
img = connector.get_image(serial_number)
或者
img = connector.get_image(serial_numbers[index])
改变焦点
此函数将更改 luxconnector 对象的焦点。在此功能之后拍摄的每张图像都会有新的焦点。
焦点在 0 到 1 的范围内。(0.0 和 1.0 是有效条目)
您需要提供您要定位的设备的序列号
connector.set_focus(serial_number, 0.5)
img1 = connector.get_image(serial_number) # Image with focus of 0.5
connector.set_focus(serial_number, 0.7)
img2 = connector.get_image(serial_number) # Image with focus of 0.7
img3 = connector.get_image(serial_number) # Image with focus of 0.7
获取温度
此函数以摄氏度为单位返回设备的温度。
您需要提供您要定位的设备的序列号
temperature = connector.get_temperature(serial_number)
更改激活相机(荧光)
要使用荧光,您需要更换活动相机。摄像机可以设置为 3 个不同的值,RED、GREEN 或 BRIGHTFIELD。这仅在您的设备是 fl 设备时才有效,否则只有 BRIGHTFIELD 可用。
connector.set_active_camera(serial_number, "RED")
connector.set_active_camera(serial_number, "GREEN")
connector.set_active_camera(serial_number, "BRIGHTFIELD")
更改相机设置
每个相机都有自己的设置。并非所有设置都可用于 BRIGHTFIELD。
- 曝光:相机检测光线的时间(以毫秒为单位)。
- 增益:相机的倍增。(仅限荧光灯)如果进入相机传感器的光线很少,请确保增益很高。
- 亮度:开启时 LED 的强度(仅限荧光灯)
- focus_offset:明场和荧光之间的焦点差异。如果焦点设置为 0.4 并且 RED 的 focus_offset 设置为 0.1 RED 焦点为 0.5(仅限 Fluo)
connector.set_camera_settings(serial_number, "RED", 500, gain=30, brightness=5000)
connector.set_camera_settings(serial_number, "BRIGHTFIELD", 10)
获取 z 堆栈
这个函数将返回一个列表pillow images。每个图像将处于不同的焦点级别。
此代码将创建一个包含 6 个图像的 z 堆栈。这些图像的焦点将是 [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
您需要提供您要定位的设备的序列号
list_of_imgs = connector.get_z_stack(serial_number, num_img = 6, start_focus = 0.5, stop_focus = 1)
更改缩放模式
有 2 种缩放模式:“IN”和“OUT”。放大后的分辨率较高但 ROI 较小,缩小时的 ROI 较高但分辨率较低。
更改此设置将为之后拍摄的每个图像或 z 堆栈更改它。
您需要提供您要定位的设备的序列号
connector.set_zoom(serial_number, "IN")
img1 = connector.get_image(serial_number) # Image is zoomed in
connector.set_zoom(serial_number, "OUT")
img2 = connector.get_image(serial_number) # Image is zoomed out
实时取景
Lux 的实时视图托管在http://localhost:3333/cytosmartservice/live?serialNumber=##########。仅当打开实时取景(默认情况下打开实时取景)时才能看到此图像。
您需要在#-符号的位置提供您要定位的设备的序列号。
connector.set_liveview(serial_number, True) # in the browser you can see the image being updated
connector.set_liveview(serial_number, False) # Led of Lux turns off till you take a picture
开发者
luxconnector 的开发者请看developers readme
学分
- 汤姆·尼霍夫
- 吉普
- 诺拉
历史
1.1.1 (2022-06-29)
- 更新文档
1.1.0 (2021-12-03)
- 添加更改相机设置
- 添加设置激活相机(明场、红色荧光或绿色荧光)
- 更改焦点:确保焦点始终在明场相机模式下发生 在更改焦点后添加睡眠,以便相机可以移动到新位置
- 更新到新的 Cytosmart 应用程序
1.0.4 (2021-04-15)
- 更新枕头
- 修复安装要求
1.0.3 (2021-11-22)
- 更新 websocket 和 websocket-client 的要求以包含版本 1
- 在开始新应用之前检查应用是否已打开
1.0.2 (2021-04-15)
- 更新枕头
- 将许可证更新为学术公共许可证
1.0.1 (2021-01-14)
- 添加了对 LUX3 FL 的支持
- 错误修正:更改缩放级别时切换实时视图
1.0.0 (2020-09-15)
- 添加了多勒克斯支持
- 将输出从 numpy 数组更改为枕头
- 需要序列号和获取信息的功能
- 添加 get_temperature
0.1.2 (2020-06-30)
- 重命名无法在打印语句中 ping
0.1.1 (2020-06-11)
- 更新文档
- 使 setup.py 适合 PyPI
0.1.0 (2020-05-20)
- 将 lux 服务器更新到最新版本
0.0.3 (2020-03-30)
- 错误修正:文件未复制到 linux 上的包中
0.0.2 (2020-03-24)
- 修正:发送消息后停止等待响应
0.0.1 (2020-03-16)
- 添加功能:复制luxconnector
- 添加功能:焦点改变选项
- 添加功能:z-stack
- 错误修正:将 lux 应用程序添加到清单
0.0.0 (2020-03-13)
复制基本包一开始的luxconnector
ACADEMIC PUBLIC LICENSE
version 1.1
Copyright (C) 2021
Preamble
本许可包含在非商业环境中使用 LuxConnector 的条款和条件:在学术机构中用于教学和研究以及个人或教育目的。您会发现,该许可证为 LuxConnector 的非商业用户提供了与众所周知的 GNU 通用公共许可证类似的权利,但它保留了 LuxConnector 作者通过销售商业许可证为开发提供财务支持的可能性。事实上,如果您打算在“营利性”环境中使用 LuxConnector,其中进行研究以开发或增强产品,用于商业服务产品,或者当实体使用 LuxConnector 参与政府资助的活动时,欧盟资助、军事或类似的研究项目,则需要获得商业许可。在这种情况下,info@cytosmart.com 查询商业许可证。
非商业用户有哪些权利?与 GPL 类似,您有权使用该软件、分发副本、接收源代码、更改软件以及分发您的修改或修改后的软件。同样与 GPL 类似,如果您分发此软件的逐字或修改副本,则必须根据此许可分发它们。
通过对 GPL 建模,此许可证可确保您在工作、教学或研究中使用 LuxConnector 时是安全的。此许可保证 LuxConnector 将免费用于非营利用途。您可以根据自己的目的修改 LuxConnector,也可以分享您的修改。即使在作者完全放弃 LuxConnector 的不太可能的情况下,此许可证也允许任何人从上一个版本继续开发它,并在此许可证下创建更多版本。
我们认为,非商业开源和商业许可的结合将有利于整个用户社区,因为商业许可的收入将有助于更快的开发和更高水平的软件质量,同时进一步享受非正式、开放的沟通和协作渠道开源开发的。
使用、复制、分发和修改的精确条款和条件如下。
ACADEMIC PUBLIC LICENSE
TERMS AND CONDITIONS FOR USE, COPYING, DISTRIBUTION AND MODIFICATION
- 定义
“程序”是指 LuxConnector 的副本,据说是根据本学术公共许可证分发的。
“基于程序的作品”是指程序或版权法下的任何衍生作品:也就是说,包含程序或其一部分的作品,无论是逐字记录还是经过修改和/或翻译成另一种语言。(在下文中,“修改”一词包括但不限于翻译。)
“使用本程序”是指创建包含或直接使用作为本程序一部分的库的可执行文件、运行作为本程序一部分的任何工具或创建基于本程序的作品的任何行为。
每个被许可人都被称为“您”。
-
特此允许将本程序免费用于非商业目的,包括在大学、学院和其他教育机构的教学和学术研究以及个人非营利目的。将本程序用于商业目的,包括但不限于咨询活动、商业硬件或软件网络产品的设计,以及与商业实体、政府资助、欧盟资助、军事或类似研究项目的联合研究,您必须请通过info@cytosmart.com联系作者以 获得适当的许可。还允许在合理有限的时间内使用该程序,以评估其对特定目的的有用性。
-
您可以在任何媒体上复制和分发您收到的程序源代码的逐字副本,前提是您在每个副本上显着且适当地发布适当的版权声明和免责声明;保持所有涉及本许可和不提供任何保证的通知完整;并将本许可的副本与本程序一起提供给本程序的任何其他接收者。
-
您可以修改您的一个或多个程序副本或其任何部分,从而形成基于该程序的作品,并根据上述第 2 条的条款复制和分发此类修改或作品,前提是您也满足所有这些条件:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
这些要求适用于整个修改后的工作。如果该作品的可识别部分并非源自本程序,并且可以合理地认为其本身是独立且独立的作品,则当您将这些部分作为单独的作品分发时,本许可及其条款不适用于这些部分。但是,当您将相同的部分作为基于本程序的作品的整体分发时,整体的分发必须遵守本许可的条款,该许可对其他被许可人的规定延伸到整个整体,因此也适用于每个和每个部分,不管是谁写的。(如果相同的独立部分作为依赖于或基于本程序的软件包的一部分分发,则整个软件包的分发,包括但不限于独立部分,
因此,本节的目的不是要求权利或质疑您对完全由您撰写的作品的权利;相反,其目的是行使控制基于或依赖于程序的衍生作品或集体作品的分发的权利。
此外,仅将不基于本程序的其他作品与本程序(或基于本程序的作品)聚合在存储或分发介质卷上并不会将其他作品纳入本许可的范围。
- 您可以根据上述第 2 节和第 3 节的条款以目标代码或可执行形式复制和分发程序(或根据第 3 节基于该程序的作品),前提是您还执行以下操作之一:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
2 and 3 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 2 and 3 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you received
the program in object code or executable form with such an offer,
in accord with Subsection b) above.)
作品的源代码是指对作品进行修改的首选形式。对于可执行作品,完整的源代码意味着它包含的所有模块的所有源代码,加上任何相关的接口定义文件,以及用于控制可执行文件的编译和安装的脚本。但是,作为一个特殊的例外,分发的源代码不需要包含任何通常与运行可执行文件的操作系统的主要组件(编译器、内核等)一起分发的东西(以源代码或二进制形式),除非该组件本身附带可执行文件。
如果通过提供从指定位置复制源代码的访问权限来分发可执行代码或目标代码,则提供从同一位置复制源代码的等效访问权限被视为分发源代码,即使第三方没有被强制复制源代码连同目标代码。
-
除非本许可明确规定,否则您不得复制、修改、再许可或分发本程序。以其他方式复制、修改、再许可或分发本程序的任何尝试均无效,并将自动终止您在本许可下的权利。但是,根据本许可从您那里收到副本或权利的各方将不会终止其许可,只要这些各方完全遵守。
-
您不需要接受此许可证,因为您尚未签署它。没有其他任何东西授予您修改或分发本程序或其衍生作品的许可;如果您不接受本许可,法律将禁止这些行为。因此,通过修改或分发本程序(或任何基于本程序的作品),您表示您接受本许可及其所有条款和条件,以便复制、分发或修改本程序或基于本程序的作品。
-
每次您重新分发本程序(或任何基于本程序的作品)时,接收者会自动从原始许可人处获得许可,以根据这些条款和条件复制、分发或修改本程序。您不得对接收者行使此处授予的权利施加任何进一步的限制。您不负责强制第三方遵守本许可证。
-
如果由于法院判决或专利侵权指控或任何其他原因(不限于专利问题),对您施加的条件(无论是通过法院命令、协议还是其他方式)与本许可的条件相抵触,他们不会免除您遵守本许可证的条件。如果您无法分发以同时履行您在本许可下的义务和任何其他相关义务,那么您可能根本无法分发该程序。例如,如果专利许可不允许所有直接或间接通过您接收副本的人免费重新分发程序,那么您可以同时满足它和本许可的唯一方法是完全避免分发程序。
如果本节的任何部分在任何特定情况下被认定为无效或不可执行,则该节的其余部分旨在适用,而该节作为一个整体旨在适用于其他情况。
-
如果程序的分发和/或使用在某些国家受到专利或受版权保护的接口的限制,则将程序置于本许可下的原始版权所有者可以添加明确的地理分发限制,不包括这些国家,以便允许分发仅在未被排除在外的国家内或之间。在这种情况下,本许可包含限制,就好像写在本许可的正文中一样。
NO WARRANTY -
由于该程序是免费许可的,因此在适用法律允许的范围内,对该程序不提供任何保证。除非另有说明,否则版权所有者和/或其他方按“原样”提供程序,不提供任何形式的明示或默示保证,包括但不限于对适销性和特定用途适用性的默示保证. 有关程序质量和性能的全部风险由您承担。如果该程序被证明有缺陷,您将承担所有必要的服务、修理或更正的费用。
-
在任何情况下,除非适用法律要求或书面同意,任何版权持有人或任何其他可能修改和/或重新分发程序的各方均不对您的损害负责,包括任何一般的、特殊的、附带的或因使用或无法使用程序而造成的后果性损害,包括但不限于数据丢失或数据不准确或由您或第三方造成的数据丢失,或程序无法与任何其他程序一起运行),即使在任何情况下此类持有人或其他方已被告知此类损害的可能性。
END OF TERMS AND CONDITIONS
最初由 Andras Varga(公共领域)为 OMNeT++ https://omnetpp.org/intro/license编写,由 CytoSMART TECHNOLOGIES BV 改编。该改编在 CC0 1.0(公共领域奉献)下获得许可。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
luxconnector -1.1.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 402d6369f9374971f9308746a8bb1c126cc7a9a9e261a9831508e992a2343303 |
|
| MD5 | 983d7be4b8eb2ebd5756207a5e8c0023 |
|
| 布莱克2-256 | bf32e3b792a6b7035bd2df7c6e16afa33097559e7e169fd2806bfe4d771c076e |
luxconnector -1.1.2-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 813f786d28070ca01da14da2d3953a3e11fcc82f2bbc4e435d6cfcca1bf9a298 |
|
| MD5 | a7ea4fac67ab002a4612ef542f9843d1 |
|
| 布莱克2-256 | d86b9ac8165ce96bc82b648996d2b0c02e80a6687bd779959c6c9669f3f80dcf |