找回密码
 立即注册

QQ登录

只需一步,快速开始

deny2016

中级会员

61

主题

386

帖子

693

积分

中级会员

积分
693

微信认证勋章

deny2016
中级会员   /  发表于:2016-11-14 09:28  /   查看:6456  /  回复:18
前段时间咱们讨论过二值化的问题,上周软件完成给领导检验的时候,领导又提出了二值化的问题。
我们以前老软件的二值化,是彩色或灰度图二值化变黑白图,黑白图还是黑白图。
但是 我用leadtools的二值化,彩色或灰度图二值化变黑白图这个是似乎是对的,但是黑白图即成了反色。

这是黑白图二值化后的效果。
因为我们老软件不存在这个问题,所以领导让解决这个问题,您看有什么办法不?
经过以前的讨论,确定了二值化的代码没问题。那么是不是我们理解的二值化跟leadtools这边的二值化不是一回事呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

18 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-11-14 15:02:22
沙发
把你的代码给我看一下~
回复 使用道具 举报
deny2016
中级会员   /  发表于:2016-11-14 17:03:46
板凳
//二值化
        public void AutoBinarize(RasterImage image)
        {
            AutoBinarizeCommand command = new AutoBinarizeCommand();
            command.Run(image);
        }
回复 使用道具 举报
deny2016
中级会员   /  发表于:2016-11-14 17:09:57
地板

我将所有有关图像处理的代码都综合到了 ImageProcessing类中,其中二值化是下面的处理函数:
//二值化
        public void AutoBinarize(RasterImage image)
        {
            AutoBinarizeCommand command = new AutoBinarizeCommand();
            command.Run(image);
        }


下面的代码是调用imageprocessing类的二值化函数的代码
               ImageProcessing imageProcessing = new ImageProcessing();
                imageProcessing.AutoBinarize(imageViewer.Image);
                string filename = _tempFilePath + filesDic[CurrentPageIndex + 1];//(CurrentPageIndex + 1).ToString() + ".tif";
                string extension = filesDic[CurrentPageIndex + 1].Substring(filesDic[CurrentPageIndex + 1].IndexOf('.'));
                _codecs.Save(imageViewer.Image, filename, FileCompressFormat(extension.ToLower(), imageViewer.Image.BitsPerPixel), imageViewer.Image.BitsPerPixel);
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-15 10:16:48
5#
有两个思路啊,你试试:
1. Demo中对于图像二值化之前做了这样的判断
  1. !tmpImg.Signed && tmpImg.BitsPerPixel == 8
复制代码

就是如果图片不是Signed的,并且图片是8位的,就不做AntoBinarize。这样应该可以解决。你这个原图就不做二值化了。
2. 调整AutoBinarizeCommand的Factor值。
回复 使用道具 举报
deny2016
中级会员   /  发表于:2016-11-21 09:18:46
6#
嗯,好的,我试试,谢谢版主
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-21 09:21:03
7#
最近又休假了?
回复 使用道具 举报
deny2016
中级会员   /  发表于:2016-11-21 10:11:19
8#
前段时间请假来着
回复 使用道具 举报
deny2016
中级会员   /  发表于:2016-11-21 10:14:22
9#
!tmpImg.Signed && tmpImg.BitsPerPixel == 8
这两个条件什么意思?我发现,我用扫描仪扫描出来的图像无论是黑白的还是彩色的,signed都是false,
bitsperpixel的值黑白图像时是1,彩色图像时,是24.

另外,leadtools的help文档中只有factor的介绍,没有详细的说明,不知道怎么用

你说的例子,是imageprocess那个例子吗?
回复 使用道具 举报
deny2016
中级会员   /  发表于:2016-11-21 10:23:05
10#
tmpImg.BitsPerPixel == 8是指的灰度图吗?如果它是指的灰度图,是不是说灰度图不需要二值化?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部