谁能介绍下工业相机在 mono8/mono10/mono12/mono14格式,以及怎么转换位16位位图。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能介绍下工业相机在 mono8/mono10/mono12/mono14格式,以及怎么转换位16位位图。相关的知识,希望对你有一定的参考价值。

 1、电脑打开Photoshop应用。


2、打开Photoshop应用后,打开要转换的图片。



3、打开要转换的图片后,点击工具栏中的图像。

4、点击图像后,把鼠标放到模式上面,就可以看到通道位数了,点击选择16位通道就可以了。

5、图片就变成了16位的了。


注意事项

16位数据代表16个“0”或者“1”二进制。

这里的“位”指的是“比特(bit)”,一个“位”就代表一个“0”或者是一个“1”二进制。

同理,32位数据就代表32个“0”或者“1”二进制;64位数据就代表64个“0”或者“1”二进制。

比特是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量。

参考技术A 1、电脑打开Photoshop应用。
2、打开Photoshop应用后,打开要转换的图片。
3、打开要转换的图片后,点击工具栏中的图像。
4、点击图像后,把鼠标放到模式上面,就可以看到通道位数了,点击选择16位通道就可以了。
5、图片就变成了16位的了。
注意事项:16位数据代表16个“0”或者“1”二进制。这里的“位”指的是“比特(bit)”,一个“位”就代表一个“0”或者是一个“1”二进制。同理,32位数据就代表32个“0”或者“1”二进制;64位数据就代表64个“0”或者“1”二进制。比特是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量。
Regem Marr 研祥金码旗下R-3000系列结构紧凑,部署简单,集成百万像素Sensor和高性能处理芯片,具备超强运算能力,可稳定读取高速移动中的条码。机身小巧,性价比高结构紧凑,方便集成,即插即用,快速安装,自动调节,轻松设定。
通过官方微信平台(微信公众号:RegemMarr Regem Marr 研祥金码),您可以第一时间掌握公司最新动态及各种行业资讯,也可以即时互动。同时您可以在线报修、查询网点、保修期等,快速获得专业服务。

如何在 Mono (Mono.Cairo / GTK#) 中访问 Linux 帧缓冲区?

【中文标题】如何在 Mono (Mono.Cairo / GTK#) 中访问 Linux 帧缓冲区?【英文标题】:How to access a Linux Framebuffer in Mono (Mono.Cairo / GTK#)? 【发布时间】:2012-08-27 01:20:39 【问题描述】:

我开始在 Mono 框架下为 Linux 编写一个小型应用程序,该应用程序本质上是一个小型信息亭前端,用户交互非常少。这是为了替换 100% 基于文本/控制台的同一应用程序的先前版本。

由于这将在 Raspberry Pi 上运行,我想避免运行 X 并让我的应用程序直接与帧缓冲区通信。我开始使用 Mono 框架和 C# 作为我的开发语言,因为我非常了解 C#。在这种情况下,可移植性不是问题。

我在寻找合适的库和绑定以让我从 Mono 访问帧缓冲区时遇到了一些麻烦。 GTK# 库都显式绑定到 X11 接口,无论如何,Debian Wheezy 中似乎没有为 ARM Soft-Float (armel) 架构预构建的 GtkFB 库。

Mono.Cairo 库公开了一个 DirectFBSurface 类型,但是该表面的构造函数需要两个 IntPtr 参数并且没有记录,所以我不知道应该将什么传递给构造函数以正确初始化帧缓冲区开罗表面。

是否有人使用 Mono 和 C# 与 Linux 帧缓冲区通信,如果有,您能否提供基本示例来初始化并开始在 FB 上绘图,或指向在线文档以提供帮助?

更新 1

我想我会尝试使用 null 为两个构造函数参数实例化 DirectFBSurface,代码如下:

public static void Main(string[] args)

    // ...
    DirectFBSurface surface = new DirectFBSurface(((IntPtr)null), ((IntPtr)null));
    // ...

我希望这会生成一个异常,指示不允许使用 null 参数值,但它看起来好像 DirectFBSurface 没有在 Mono.Cairo 中实现,或者没有编译到 Debian Wheezy (armel ):

Unhandled Exception: System.EntryPointNotFoundException: cairo_directfb_surface_create
  at (wrapper managed-to-native) Cairo.NativeMethods:cairo_directfb_surface_create (intptr,intptr)
  at Cairo.DirectFBSurface..ctor (IntPtr dfb, IntPtr dfb_surface) [0x00000] in <filename unknown>:0
  at Info.Insch.SandBox.TestCairo.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

所以看来Mono.Cairo 方法可能无法满足我的需求,如上所述,GTK# Framebuffer 库似乎不是 Debian Wheezy for armel 的一部分。是否有另一组库可用于从 Mono 访问 Linux 帧缓冲区?

【问题讨论】:

这是你吗? raspberrypi.org/phpBB3/viewtopic.php?t=15788&p=160933 如果是这样,您可以绘制到 Cairo 的软件界面,并每隔一段时间将其粘贴到 SDL 界面上。 看来您需要将指针传递给本机 IDirectFB 和 IDirectFBSurface。这是 Mono.Cairo 的源代码:github.com/mono/mono/blob/master/mcs/class/Mono.Cairo/… 这是该构造函数的 cairo 源代码:cgit.freedesktop.org/cairo/tree/src/… 【参考方案1】:

您得到的EntryPointNotFoundException 表示在您的 debian 的 libcairo.so.2 库中找不到带有 (IntPtr, IntPtr) 作为参数的符号 cairo_directfb_surface_create。如果在 cairo 编译时未启用 directfb,则可能是这种情况。您可以通过以下方式检查 cairo 中的 directfb 支持:

readelf -Ws /usr/lib/libcairo.so.2 | grep directfb

如果结果(输出)为空,则说明您缺少 directfb 支持。在这种情况下,您必须重新编译 cairo,并将 --enable-directfb 参数传递给配置脚本。

我已经在 openSUSE 12.1 和 Fedora 17 机器上进行了测试,默认情况下两者似乎都没有提供启用 directfb 的 cairo。不过我不知道debian,你得自己测试一下。

【讨论】:

以上是关于谁能介绍下工业相机在 mono8/mono10/mono12/mono14格式,以及怎么转换位16位位图。的主要内容,如果未能解决你的问题,请参考以下文章

请问那里可以下载到 basler/巴斯勒 工业相机的驱动程式 pylon viewer?

工业数字相机接口标准的介绍是啥?求指教

如何用工业相机进行物件的定位

关于工业相机

关于工业相机

工业相机之接口与协议 视觉硬件篇