对不起,这算是一篇求助啦,先上图,防止不清楚,放大了一点,下面是图片,上面是没有二值化的,下面是二值化之后的,我其实不懂什么是二值化啦,就是一定范围变黑,变白

问题:

为什么我的结果上面还是有很多彩色的小点点呢?原来都是没有的……

谁能帮我看看代码怎么改!谢谢大牛们帮忙!!

                Bitmap bit1 = new Bitmap(bit);

                Rectangle rect1 = new Rectangle(0, 0, bit1.Width, bit1.Height);
BitmapData bitd = bit1.LockBits(rect1, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); IntPtr srcPtr = bitd.Scan0; int scanWidth = bitd.Width * 3;
int src_bytes = scanWidth * bitd.Height;
byte[] srcRGBValues = new byte[src_bytes]; Marshal.Copy(srcPtr, srcRGBValues, 0, src_bytes); //灰度化处理
int m = 0, i = 0, j = 0; //m表示行,j表示列
int k = 0; for (i = 0; i < bit.Height; i++) //只获取图片的rows行像素值
{
for (j = 0; j < bit.Width; j++)
{
//只处理每行中图像像素数据,舍弃未用空间
//注意位图结构中RGB按BGR的顺序存储
k = 3 * j;
var grays = Convert.ToInt16(srcRGBValues[i * scanWidth + k + 2]) +
Convert.ToInt16(srcRGBValues[i * scanWidth + k + 1]) +
Convert.ToInt16(srcRGBValues[i * scanWidth + k + 0]);
if (grays >= 382)
{
srcRGBValues[i * scanWidth + k + 2] = Convert.ToByte(255);
srcRGBValues[i * scanWidth + k + 1] = Convert.ToByte(255);
srcRGBValues[i * scanWidth + k + 0] = Convert.ToByte(255);
}
else
{
srcRGBValues[i * scanWidth + k + 2] = Convert.ToByte(0);
srcRGBValues[i * scanWidth + k + 1] = Convert.ToByte(0);
srcRGBValues[i * scanWidth + k + 0] = Convert.ToByte(0); }
}
m++;
}
Marshal.Copy(srcRGBValues, 0, srcPtr, src_bytes);
bit1.UnlockBits(bitd);
Image image1 = bit1;

验证码图片二值化问题 BitmapData 怎么解决的更多相关文章

  1. C#图片灰度处理(位深度24→位深度8)、C#图片二值化处理(位深度8→位深度1)

    C#图片灰度处理(位深度24→位深度8) #region 灰度处理 /// <summary> /// 将源图像灰度化,并转化为8位灰度图像. /// </summary> / ...

  2. python图片二值化提高识别率

    import cv2from PIL import Imagefrom pytesseract import pytesseractfrom PIL import ImageEnhanceimport ...

  3. [置顶] c#验证码识别、图片二值化、分割、分类、识别

    c# 验证码的识别主要分为预处理.分割.识别三个步骤 首先我从网站上下载验证码 处理结果如下: 1.图片预处理,即二值化图片 *就是将图像上的像素点的灰度值设置为0或255. 原理如下: 代码如下: ...

  4. 机器学习进阶-项目实战-信用卡数字识别 1.cv2.findContour(找出轮廓) 2.cv2.boudingRect(轮廓外接矩阵位置) 3.cv2.threshold(图片二值化操作) 4.cv2.MORPH_TOPHAT(礼帽运算突出线条) 5.cv2.MORPH_CLOSE(闭运算图片内部膨胀) 6. cv2.resize(改变图像大小) 7.cv2.putText(在图片上放上文本)

    7. cv2.putText(img, text, loc, text_font, font_scale, color, linestick) # 参数说明:img表示输入图片,text表示需要填写的 ...

  5. c#实现图片二值化例子(黑白效果)

    C#将图片2值化示例代码,原图及二值化后的图片如下: 原图: 二值化后的图像: 实现代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...

  6. OpenCV - 图片二值化,计算白色像素点的个数

    直接上代码吧: import cv2 import numpy as np from PIL import Image area = def getWhitePixel(img): global ar ...

  7. python的N个小功能(图片预处理:打开图片,滤波器,增强,灰度图转换,去噪,二值化,切割,保存)

    ############################################################################################# ###### ...

  8. 基于Java对图片进行二值化处理

    一直以来对Java的图形处理能力表无力,但好像又不是那么一回事,之前用PHP做过一些应用,涉及到验证码的识别,其中有个图片二值化的步骤,今天换成Java来实现下 在java的扩展包javax.imag ...

  9. atitit.验证码识别step4--------图形二值化 灰度化

    atitit.验证码识别step4--------图形二值化 灰度化 1. 常见二值化的方法原理总结 1 1.1. 方法一:该方法非常简单,对RGB彩色图像灰度化以后,扫描图像的每个像素值,值小于12 ...

随机推荐

  1. 为程序设置多语言界面——C#

    考虑到程序的国际化需求,需要为程序设置多语言界面. 1,新建一个资源文件,名字可以是对应界面+语言代码(MainForm.zh-CN).这样资源文件就会自动添加到对应界面下面. 2,更改界面属性Loc ...

  2. jquery1.6中的.prop()和.attr()异同

    jquery jQueryHTML5JavaScript浏览器ITeye  最近在iteye的新闻中看到jQuery已经更新到了1.6.1.和之前版本的最大变化是增加了.prop方法.但是.prop( ...

  3. Exp2 后门原理与实践-------20164325王晓蕊

    Exp2 后门原理与实践 任务一:使用netcat获取主机操作Shell,cron启动 1.windows获取linux shell 1.1 ipconfig  查看本机查看以太网适配器(8)的ipv ...

  4. shell指令(一)

    ubuntu桌面窗口下进入shell窗口:Ctrl + Alt + F2~F6:  退出shell窗口:Ctrl + Alt + F7:从UI中进入UI命令窗口,Ctrl + Alt +T shell ...

  5. 16bit CRC算法C语言实现

    #define CRC_16_POLYNOMIALS 0x8005 unsigned short CRC16_3(unsigned char* pchMsg, unsigned short wData ...

  6. Chapter 7 Resources in Plug-In(1)

    Activity and resource are like twin brothers. And so if the activity need to be solve in Plug-In com ...

  7. 【转】Asp.NetMve移除HTTP Header中服務器信息Server、X-AspNet-Version、X-AspNetMvc-Version、X-Powered-By:ASP.NET

    默認情況下Chrome中截獲的HTTP Header信息: Cache-Control: Content-Encoding:gzip Content-Length: Content-Type:text ...

  8. Javascript高级编程学习笔记(15)—— 引用类型(4)RegExp类型

    JS中处理字符串最常用的应该就是正则了 同样正则(RegExp)类型也是JS中引用类型的一种 ECMAScript通过 RegExp类型 来支持正则表达式 创建正则 var expression = ...

  9. jupyter notebook的安装与基本操作

    0.前言 最近正在重温Python基础知识,为了方便练习敲代码,于是选择安装jupyter notebook作为代码编辑器. Project Jupyter exists to develop ope ...

  10. (转)p解决 java.util.prefs.BackingStoreException 报错问题

    原文:https://blog.csdn.net/baidu_32739019/article/details/78405444 https://developer.ibm.com/answers/q ...