gray_histo 计算直方图

原形:gray_histo(Regions, Image : : : AbsoluteHisto, RelativeHisto)
功能:计算直方图
参数:Regions:区域,要计算的区域(在image上的区域)
Image :要计算的图形
AbsoluteHisto:绝对统计数量,比如灰阶值为0-255的有多少个像素点
RelativeHisto:比例,像素值0-255占整个图像的比例

代码示例:

*显示直方图
while (true)
    read_image(Image, 'D:\\2.PNG')
    rgb1_to_gray (Image, GrayImage)
    dev_display (GrayImage)
    wait_seconds (1)
*   产生一个矩形
    gen_rectangle1 (Rectangle, 0, 0, 9, 9)
    dev_inspect_ctrl (AbsoluteHisto)
    dev_inspect_ctrl (AbsoluteHisto)
    dev_close_inspect_ctrl (AbsoluteHisto)

    *1\显示原图直方图
    gray_histo (Rectangle, GrayImage,AbsoluteHisto, RelativeHisto)
    dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
    dev_set_color ('green')
    gen_region_histo (Region, AbsoluteHisto, 255, 255, 1)
    dev_display (Region)
    
    dev_close_inspect_ctrl (AbsoluteHisto)
    dev_inspect_ctrl (AbsoluteHisto)
    dev_close_inspect_ctrl (RelativeHisto)
    dev_inspect_ctrl (RelativeHisto)
    *2\直方图均衡化后显示直方图
    dev_close_inspect_ctrl (AbsoluteHisto)
    dev_inspect_ctrl (AbsoluteHisto)
    dev_close_inspect_ctrl (AbsoluteHisto)
    equ_histo_image (GrayImage, ImageEquHisto)
    gray_histo (ImageEquHisto, ImageEquHisto,AbsoluteHisto, RelativeHisto)
    dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
    dev_set_color ('red')
    gen_region_histo (Region, AbsoluteHisto, 255, 255, 1)
    dev_display (Region)
    break
endwhile


在这里插入图片描述

上图是给了一张全黑的图片,然后截取10*10的左上角,进行直方图计算;可以看到AbsoluteHisto下标0有100个,其他都是0
RelativeHisto下标0占比1 ,也就是100% , 其他都是0 , 因为一张全黑的图像素点的值都是0

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐