求助:有一彩色图象,可读到其RGB颜色值,现我需要将其转换成单色的黑白图象,请问如何根据RGB值得到黑白的象素值呢? 转换成黑白图像很简单,你根据自己的要求判断每个彩色像素点的rgb值在哪些范围内的变成黑点,其他变成白点,重新拼成一个单色位图就行了。细致一点,你可以先将彩色位图先转换成单色灰度图像,再用单色纹样点阵代替不同灰度的像素点,这样就比较形象一些。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果要做简单的图像识别,直接设定并判断像素的rgb值的范围最简单。用单色点阵抖动来代替灰度像素可以得到较逼真的效果。当然抖动还有很多优化方法。 用了公式int final = (int)(.299 * (double)r) + (.587 * (double)g) + (.114 * (double)b));但是结果出来后模糊的很,不知所谓的阀值设多少才好,我已试过n个了 从一幅图中,按一定规则划分出感兴趣的部分或区域称为分割。基本思想是使像素值小于指定阈值的像素转换成黑(白)像素[2]。像素值等于或大于指定阈值的像素换成白(黑)像素,在这里,我们对上面放大后的图像进行分割,就是要得到血管和背景的二值图像。图像二值化的方法很多,有阈值法[3]、FCM2D法[4]等,本文根据文献中有关广义模糊集的定义,提出了一种快速高效的分割方法。其过程如下: 一个灰度级为 L的 M×N的二维灰度图像,可以看作是一个广义模糊单敦构成的阵列,其中每个元素的广义隶属函数的绝对值表示相对于最大亮度L-1的亮度程度[5],故可记为: 其广义性质域的值P={Pij}为: 其中Xmax为最大灰度级,i=1,2,...,M ,j=1,2,...,N, D为可调参数,应用下面公式,经多次循环操作(10次左右),将P′={P′ij}映射为普通性质集P'={P'ij}: 你的灰度转换公式中的系数一般的图像处理书很容易找到,是根据r,g,b分量对人眼感受的亮度的贡献来的标准处理方式。但是肯定有信息损失,一个亮度为(1/.299)的红色点与一个亮度为(1/.587)的绿色点转换出来就是相同的灰度。彩色图像中太多这样的点可以看,转换出来就没什么信息了。这时只有不按人的习惯系数去转换了。 to z_sky:其实我的图象中只有黑白文字,我试过直接将r=0、g=0、b=0转成黑色,将r=255、g=255、b=255转成白色,但好象形成的图象还是看不出原来的文字! to z_sky:图象是白底黑字,没有其他颜色。转换的结果很模糊,有一些笔画变形了。 已经搞定,原来是我把RGB值取错了 有关全局钩子的一些问题,求助!!! 请问本地安全策略如何用代码实现?(内详) 位图中bmWidthBytes的疑惑 ●ATL接口中如何传递 HICON和CRuntimeClass * 移动工具条会收到什么消息? 全局变量怎么定义?怎么会提示已定义那? mfc Visual Studio .NET安装问题 windows视窗图象刷新一次的时间是多少? error LNK4006: ... already defined in ****.obj; ; second definition ignored 紧急!共有200分奉送!中文输入法的软键盘是如何实现的? 怎样获得网上的域名和用户组
int final = (int)(.299 * (double)r) + (.587 * (double)g) + (.114 * (double)b));
但是结果出来后模糊的很,不知所谓的阀值设多少才好,我已试过n个了
一个灰度级为 L的 M×N的二维灰度图像,可以看作是一个广义模糊单敦构成的阵列,其中每个元素的广义隶属函数的绝对值表示相对于最大亮度L-1的亮度程度[5],故可记为:
其广义性质域的值P={Pij}为:
其中Xmax为最大灰度级,i=1,2,...,M ,j=1,2,...,N, D为可调参数,
应用下面公式,经多次循环操作(10次左右),将P′={P′ij}映射为普通性质集P'={P'ij}:
其实我的图象中只有黑白文字,我试过直接将r=0、g=0、b=0转成黑色,将r=255、g=255、b=255转成白色,但好象形成的图象还是看不出原来的文字!
图象是白底黑字,没有其他颜色。
转换的结果很模糊,有一些笔画变形了。