CxImage图像灰度处理简述
来源:互联网 发布:福利彩票双色球计算法 编辑:程序博客网 时间:2024/06/06 12:58
1. 引言
本周的工作项是实现图像的二三值转换功能,因为之前没有做过这块的东西,故而记录下实现的过程。以便以后翻阅!
2. 目标功能
实现图像的2值、3值转换。说白了就是灰度值的转换。
3. 使用CxImage原因
经过多方查找资料,特别是查看【VC++图像处理】这本书之后,发现图像处理方面的东西还是很多的。并根椐这本书所介绍的图像处理知识开始进行代码编写,然而写过300行之后发现,需要写的东西越来越多。签于时间短、任务重的原因,只能放弃这条路。
而在此时, 恰好在网上看到CxImage的一些简介 ,仔细研究了一下它的接口。发现这个类库刚好有我所需要的一些功能,而此类库又是开源的,使用的人非常的多,所以bug方面的问题不需要太担心。于是开始使用此类库进行代码编写。
在此,首先要感谢CxImage类库的作者Davide Pizzolato。
4. 功能实现
CxImage的功能非常的强大,而进行灰度处理只需要用到它的两个接口就可以了,即:
Ø BYTE GetPixelGray(longx, long y);//获取指定像素的灰度值
Ø void SetPixelColor(long x,long y,COLORREF cr); //设置指定像素
的颜色。
4.1. 灰度转换实现流程图
实现流程图如下:
4.2. 核心代码
- a 获取图像中每个像素的原始灰度值:
for (int x=0; x<mWidth; x++)
{
for (int y=0; y<mHeight; y++)
{
BYTEbGray = m_pXImage->GetPixelGray(x, y);
}
}
- b 存贮每个像素的原始灰度值
mPointGray.x = x;
mPointGray.y = y;
mPointGray.gray = bGray;
m_vPointGray.push_back(mPointGray);
- c原始灰度值与“灰度分割参数”比较,并为图像设置新的灰度值
(如灰度分割参数为150)
if (bGray > 150)
{
m_pXImage->SetPixelColor(x,y,RGB(255,255,255));
}
else{
m_pXImage->SetPixelColor(x,y,RGB(0,0,0));
}
5. 开发中遇到的问题
当使用接口【BYTE GetPixelGray(long x, long y);】获取灰度值的时候,返回结果中会出现有字符的现像(初步估计:可能是图片中的一些信息)。因为此问题暂不影响图片处理效果,故先放置,等待后续处理。
6. 结束语
至此,灰度处理完成。当然,还有一些牵涉到界面的部分就不再多述了,如:图像的灰度随着滑块的滑动而变化、3值转换、4值转换等。
再此感谢CxImage的作者:Davide Pizzolato !
CabinRiver
2011-06-17 23:43:00
- CxImage图像灰度处理简述
- CxImage图像灰度处理简述
- CxImage图像处理类库
- CxImage图像处理类库
- 图像灰度化处理
- C# 图像灰度处理
- C# 图像灰度处理
- 图像处理:图像灰度化
- 图像处理 灰度图像直方图
- Qt图像处理--灰度处理
- 图像处理—灰度处理
- 四大图像库OpenCV/FreeImage/CImg/CxImage简述
- 四大图像库OpenCV/FreeImage/CImg/CxImage简述
- 四大图像库OpenCV/FreeImage/CImg/CxImage简述
- CXimage图像处理类的应用小结
- 十全大补:CxImage图像处理类库
- 十全大补:CxImage图像处理类库
- 十全大补:CxImage图像处理类库
- 随笔
- 二进制、八进制、十进制、十六进制之间转换
- sort函数中的第三个参数
- Ubuntu10.10下编译Android2.2内核
- StageVideo 在 Flex Applicaiton 中成瞎子了!?
- CxImage图像灰度处理简述
- WINDOWS SOCKET下的网络编程
- Where is my way ?
- pku2482 史上最浪漫的题(二叉静态检索树)
- javascript 内存管理 避免内存泄漏 [ajax in action]
- Intercepting Calls to COM Interfaces
- 用C++设计一个不能被继承的类
- 用javaScript实现两个复选框之间选项的移动和提交目标框中的选项
- Google earth 画扇形