少有人走的路

勇哥的工业自动化技术网站

为啥彩色相机拍出来的图片, 保存看到是彩色的,但是在halcon窗口内显示却是黑白的?


相机是彩色的, 用下面的代码保存为本地图片, 打开发现是彩色的.

但是, 你会发现显示到屏幕上却是黑白的.

dev_close_window()
dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default',\
                   -1, 'false', 'default', '94aab8029638_Microvision_MVEM500M', 0, -1, AcqHandle)
grab_image (Image, AcqHandle)

write_image(Image, 'tiff', 0, 'd:/1.tiff')
disp_image(Image,WindowHandle )

close_framegrabber (AcqHandle)

我以为是算子open_framegrabber 有问题, 改成下面这样的:

即图像为8位通道, RGB色彩空间.

open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', 8, 'rgb',\
                   -1, 'false', 'default', '94aab8029638_Microvision_MVEM500M', 0, -1, AcqHandle)

结果不对,显示还是黑白的. 


最后发现其实是算子 disp_image的问题, 这货只能显示黑白图像. 

换成disp_obj就可以了. 

真是想不到啊! 


摘抄一下halcon的disp_image算子的帮助:

disp_image(操作员)
名字
disp_image• 显示灰色值图像。

签名
disp_image(Image : : WindowHandle : )

描述
disp_image在输出窗口中显示图像的灰色值。定义域的灰值像素(set_comprise(::windowHandle、'对象':)
set_comprise(或整个图像(set_comprise(::窗口句柄,"图像":)set_comprise(被使用。对定义域的限制是默认值。

果然是不求甚解啊~~


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864