5个回答
展开全部
假设该灰度图像在内存中为 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;
}
}
图像宽度为: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;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个好做 呵呵 不过很费时间 你还是学学VC++吧 很有用的! 可以先用c语言完成读文件、灰度化、直方图等,再用到VC++上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.创建一个SDI工程
2.加载bmp图片
3.逐行逐列的读取每一个像素的灰度值。
4.设置一个阈值,比如100
5.将灰度值低于100的置为0
6.将灰度值高于100的置为1
7.保存图片
2.加载bmp图片
3.逐行逐列的读取每一个像素的灰度值。
4.设置一个阈值,比如100
5.将灰度值低于100的置为0
6.将灰度值高于100的置为1
7.保存图片
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
灰度图是用不同等级的灰度来显示整个图像,儿二值黑白图像里面只存在黑白两色,使用Matlab对现有图像进行处理的时候,如果对象是一个彩色图像,将会创建一个三维矩阵,如果是一个灰度图像,则创建一个二位矩阵,因为使用二维矩阵就能完全记录灰度图像像素信息。
如果对象是彩色的图像,生成的三维矩阵基本结构是这样的,按照RGB模式分成三层,其中R、G、B各占一层,单独将每一层拿出来显示都是灰度图,而常见图像一般都是点阵图像,每一个像素都需要用RGB模式来记录数据,如(255,255,255)就是白,(0,0,0)就是黑,我们的三维矩阵中R二位矩阵记录的就是所有像素点得R色数据记录,自然G、B层二维矩阵就是记录的所有像素点的G分色信息和B分色信息
如果源数据是彩色图像,则你只需要拿出一个二位矩阵,然后将这个二维矩阵的元素数据进行修改,将所有的点进行判断,如果大于128,则将此点数据赋值为255,如果小于128,则全部赋值为0,如此所有的像素点的数据就仅限于0和255,显示出来就是二值黑白图像
如果对象是彩色的图像,生成的三维矩阵基本结构是这样的,按照RGB模式分成三层,其中R、G、B各占一层,单独将每一层拿出来显示都是灰度图,而常见图像一般都是点阵图像,每一个像素都需要用RGB模式来记录数据,如(255,255,255)就是白,(0,0,0)就是黑,我们的三维矩阵中R二位矩阵记录的就是所有像素点得R色数据记录,自然G、B层二维矩阵就是记录的所有像素点的G分色信息和B分色信息
如果源数据是彩色图像,则你只需要拿出一个二位矩阵,然后将这个二维矩阵的元素数据进行修改,将所有的点进行判断,如果大于128,则将此点数据赋值为255,如果小于128,则全部赋值为0,如此所有的像素点的数据就仅限于0和255,显示出来就是二值黑白图像
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
opcv库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询