关于将Halcon中低对比度的real类型图像转成byte 类型图像的方法

一.问题引出

  1.  在对图像进行快速傅里叶变换rft后获取,变换完成的图像时:rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'n', 'real', Width) 返回的图像类型 可以有多种选择,byte , real,int2  由于特定的需求,特别是一些缺陷检测的项目,在图像对比度不高的情况下,可以选择 real类型的图像,来凸显缺陷的内容; 
  2. 那么这样问题来了,得到的real类型图像,缺陷特征是明显的,但是因为real类型的数据导致缺陷和背景的灰度却拉不开,特别当我们想进行图像增强和图像分割的常规操作的时候,都需要一个byte类型的图像
  3. 如果直接用图像转换,convert_image_type 进行图像类型转换,基本是就只能得到一张纯黑的图,图像的灰度集中于某个小的区间,还是很难处理。convert_image_type算子转化为BYTE类型时真实值小于零的值直接置0,而大于0的值则保持不变。
  • 二  转换方法
  1.  在网上查到一种,先拓展再转换的方法 现在记录如下
  2. min_max_gray(ImageGauss, ImageGauss, 0, Min, Max, Range)
    garyScale:= 255/(Max - Min)
    scale_image(ImageGauss, ImageGauss1, 1, 0-Min)
    scale_image(ImageGauss1, Image1, garyScale, 0)
    convert_image_type(Image1, ImageConverted1, 'byte')
  3. 基本原理是 先获取图像的 灰度极值,然后通过 灰度的最小值将 所用灰阶转换成 大于 等于0的值,再根据归一化的灰度放大系数,将所有的灰度扩大到 0-255 范围
  4. 由于内网限制 无法传递效果图片到博客,有机会再写个代码进行展示效果。
  5. 感谢CJ先生给的方案和思路。

你可能感兴趣的:(halcon学习资料,Halcon项目案例分析,计算机视觉,人工智能)