怎么用VC++编写程序把灰度图像转换为黑白图(二位图)~

需要用MFC么?大体思路是什么?最好用源代码~谢谢!... 需要用MFC么?大体思路是什么?最好用源代码~谢谢! 展开
 我来答
Bhattacharrya
推荐于2018-03-19 · TA获得超过806个赞
知道小有建树答主
回答量:259
采纳率:42%
帮助的人:133万
展开全部
假设该灰度图像在内存中为 BYTE *pBuffer;
图像宽度为:nWidth;
图像高度为:nHeight;
黑白图阈值为:nThreshold = 127;则:
for(int i=0; i<nHeight; i++)
{
for(int j=0; j<nWidth; j++)
{
int &nPixelVal = *(pBuffer * i + j);
if (nPixelVal >= nThreshold)
nPixelVal = 255;
else
nPixelVal = 0;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flnta76
2010-11-26 · TA获得超过479个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:459万
展开全部
这个好做 呵呵 不过很费时间 你还是学学VC++吧 很有用的! 可以先用c语言完成读文件、灰度化、直方图等,再用到VC++上。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火驹
2010-11-17 · TA获得超过1447个赞
知道小有建树答主
回答量:6294
采纳率:0%
帮助的人:1702万
展开全部
1.创建一个SDI工程
2.加载bmp图片
3.逐行逐列的读取每一个像素的灰度值。
4.设置一个阈值,比如100
5.将灰度值低于100的置为0
6.将灰度值高于100的置为1
7.保存图片
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2016-10-09 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:861万
展开全部
灰度图是用不同等级的灰度来显示整个图像,儿二值黑白图像里面只存在黑白两色,使用Matlab对现有图像进行处理的时候,如果对象是一个彩色图像,将会创建一个三维矩阵,如果是一个灰度图像,则创建一个二位矩阵,因为使用二维矩阵就能完全记录灰度图像像素信息。
如果对象是彩色的图像,生成的三维矩阵基本结构是这样的,按照RGB模式分成三层,其中R、G、B各占一层,单独将每一层拿出来显示都是灰度图,而常见图像一般都是点阵图像,每一个像素都需要用RGB模式来记录数据,如(255,255,255)就是白,(0,0,0)就是黑,我们的三维矩阵中R二位矩阵记录的就是所有像素点得R色数据记录,自然G、B层二维矩阵就是记录的所有像素点的G分色信息和B分色信息
如果源数据是彩色图像,则你只需要拿出一个二位矩阵,然后将这个二维矩阵的元素数据进行修改,将所有的点进行判断,如果大于128,则将此点数据赋值为255,如果小于128,则全部赋值为0,如此所有的像素点的数据就仅限于0和255,显示出来就是二值黑白图像
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hailengc
2010-11-18 · TA获得超过101个赞
知道答主
回答量:55
采纳率:0%
帮助的人:68.4万
展开全部
opcv库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式