如何用vc编程实现彩色图像转换成黑白图像?
我做的界面上两个picture有两幅彩色图片,一个按钮,现在要单击一下按钮将两幅彩色图片转换成黑白图片,并在另外两个picture控件上显示,请问程序如何编写? 问题点数:0、回复次数:11Top
1 楼paulkf(手淫不用戴套)回复于 2005-06-04 09:47:52 得分 0
怎么没人回复啊,哪位大哥帮帮我!Top
2 楼chengzhe(simon)回复于 2005-06-04 09:53:23 得分 0
r*0.5+g*0.3+b*0.2Top
3 楼Featured(我握着爱情的门票静静排队……)回复于 2005-06-04 10:16:48 得分 0
因为红绿兰对视觉的刺激程度不同,所以采用算法 R*0.3+G*0.59+B*0.11 比较好,但这不是唯一的算法,常用的还有其他三种,共四种:
1. R*0.299 + G*0.587 + B*0.114
(这其实就是上面所说的算法,只是权值更精确了一些 )
2. R*0.45+G*0.35+B*0.20
3. max( R, G, B );
4. avg( R, G, B ); (windows 中自带的画图软件就使用这种算法。 )
书籍上介绍的一般都是:
灰度值 = (R*30 + G*59 + B*11 ) / 100
把 R,G,B都赋值为该亮度值,就可得到灰度图象。
无调色板的真彩色,直接修改数据。
有调色板的直接修改调色板中的RGB。Top
4 楼DRACULAX05(学习中^-^)回复于 2005-06-04 11:16:50 得分 0
人家问的是“黑白”图像,你们老讲灰度干嘛Top
5 楼paulkf(手淫不用戴套)回复于 2005-06-04 13:51:51 得分 0
这个算法公式我知道,见过很多次,可我vc真的不怎么会用,程序不知道怎么写啊,哪位老兄知道加我qq好吗,帮帮我啊,分数都给你们!Top
6 楼paulkf(手淫不用戴套)回复于 2005-06-04 13:56:04 得分 0
忘记留我qq了,31856007,大哥们帮帮忙啦!就处理一下两张彩色图片,先变成黑白的,再相减取差值图片!Top
7 楼sxgo(sun)回复于 2005-06-05 01:45:02 得分 0
用cv函数库.,,.,好了Top
8 楼tangjun237(tangjun2371)回复于 2005-06-05 05:16:35 得分 0
灰度化就是从彩色图像转化为黑白图像,可以举个简单例子,在word里通过灰度化可以看到你的彩色图片打印出来的黑白效果。Top
9 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-06-05 08:00:51 得分 0
markTop
10 楼icansaymyabc(学习与进步)回复于 2005-06-05 11:56:49 得分 0
用VC很容易啊,你找到 图片在内存中的数据区,
从数据区里面找到每一个像素的 R,G,B分量,
按公式
n= R*0.3+G*0.59+B*0.11
计算后,再把值赋给 R,G,B,处理完后把数据区拷贝给 另一幅图片。Top
11 楼cooljjyy(叽叽歪歪)回复于 2005-06-05 13:30:16 得分 0
不用那么麻烦的,用BitBlt函数就可以搞定,调用的时候最后一个参数指定进行位运算与,或之类的。可以找找MSDN里面"How To Drawing Transparent Bitmaps"这一章,原理就跟构造一个图像的mask一样。Top




