彩票走势图

ImageMan.Net使用教程:如何判断位图图像为彩色,灰阶或黑白

原创|使用教程|编辑:郝浩|2013-09-26 11:02:34.000|阅读 291 次

概述:如何判断一个24/32位图像是彩色、灰阶还是黑白的?您可以使用ImageMan.Net文件的类来判断。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

如何判断一个24/32位图像是彩色、灰阶还是黑白的?您可以使用ImageMan.Net文件的类来判断。

下面是一些示例代码使用:

// Requires a reference to the DTI.ImageMan.TessOcr assembly
using DTI.ImageMan;

ColorAnalyzer a = new ColorAnalyzer(viewer1.Images.CurrentImage);

Console.WriteLine("Color = {0}, Greyscale = {1}, Black&WHite = {2}", a.IsColor, a.IsGreyscale, a.IsBlackAndWhite);
if (a.IsGreyscale)
Console.WriteLine("{0} Grey Entries", a.GreyScaleEntries);

值得注意:
1.目前只支持4、8、24和32位图像,不支持16位的图像,但在不久的将来会支持。
2.大多数情况下扫描图像是黑白图像,但也有一些灰阶像素图,在这种情况下,它会返回IsGreyscale==ture,您可以检查GreyScaleEntries的属性,看有多少灰阶项,如果只是小数目,它可能将值减少到1比特的图像。你也可以修改此代码,以确认周围聚集的黑白作品灰度项。
3.这需要在你的解决方案中引用DTI.ImageMan.TessOcr。

The ColorAnalyzerClass:

    public class ColorAnalyzer
    {
        int[,] histogram;
        public ColorAnalyzer(ImImage img)
        {
            histogram = Analyze.GetColorHistogram(img);
            GreyScaleEntries = 0;

            // Check for Color and Greyscale
            for( int i = 0; i < 256; i++  ) {
                if (histogram[0, i] == histogram[1, i] && histogram[1, i] == histogram[2, i])
                {
                    if (histogram[0, i] > 0)
                    {
                        GreyScaleEntries++;
                        IsGreyscale = true;
                    }
                } 
                else
                {
                    IsGreyscale = false;
                    IsColor = true;
                }
            }

            // This could be a black & White image so lets check
            if (IsGreyscale)
            {
                if (GreyScaleEntries == 2 && histogram[0, 0] > 0 && histogram[0, 255] > 0)
                {
                    IsBlackAndWhite = true;
                    IsGreyscale = false;
                }
            }
        }

        public bool IsColor;
        public bool IsGreyscale;
        public bool IsBlackAndWhite;
        public int GreyScaleEntries;
    }

ImageMan.Net试用版下载


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP