VC编程实现位图图像二值化、反相
来源:互联网 发布:怎么获取三级域名 编辑:程序博客网 时间:2024/05/22 02:26
VC编程实现位图图像二值化、反相
VC编程进行位图的像素操作(灰度化)介绍了VC对位图图像灰度化处理,本文继续介绍位图处理类CImageUtility的其它成员方法,限于篇幅,本文着重介绍VC编程实现图像二值化、位图反相的算法和具体实现。
1. 图像二值化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 图像极值化(二值话)处理
// limen-阈值(0.0-100.0)
void
CImageUtility::ImageExtreamProcess(
double
limen)
{
// 目前只处理24位以上的位图
if
(nPixBytes <3)
return
;
//定义RGB存储空间
int
nRGB[3];
//定义LAB储存空间
double
fLAB[3];
for
(
long
nHeight=0; nHeight<bmSrcInfo.bmHeight; nHeight++)
{
for
(
long
nWidth=0; nWidth<bmSrcInfo.bmWidth; nWidth++)
{
//获取对应像素点得颜色
getPixelColor(nRGB,nHeight,nWidth);
//RGB转换成LAB
CColorUtility::_cie_rgb2lab(nRGB,fLAB);
if
(fLAB[0]>limen){
nRGB[0]=255;
nRGB[1]=255;
nRGB[2]=255;
}
else
{
nRGB[0]=0;
nRGB[1]=0;
nRGB[2]=0;
}
//设置像素点颜色
setPixelColor(nRGB,nHeight,nWidth);
}
}
bmpSrc->SetBitmapBits(dwBmByteSize, pBmBits);
}
图像二值化的方法是:逐个像素获取位图(BMP)图像的颜色信息,并将其转换成LAB色彩空间,将LAB的L(亮度)分量与形参传递的阈值进行比较,L(亮度)分量大于阈值则将RGB三个分亮亮均设置成255,也即是白色,如果LAB的L(亮度)分量小于形参传递的阈值则将RGB三个分亮亮均设置成0,也即是黑色。
2. 位图反相
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//反相
void
CImageUtility::ImageReverseProcess(){
// 目前只处理24位以上的位图
if
(nPixBytes <3)
return
;
//定义RGB存储空间
int
nRGB[3];
for
(
long
nHeight=0; nHeight<bmSrcInfo.bmHeight; nHeight++)
{
for
(
long
nWidth=0; nWidth<bmSrcInfo.bmWidth; nWidth++)
{
//获取对应像素点得颜色
getPixelColor(nRGB,nHeight,nWidth);
//对每位颜色取反
nRGB[0]=255-nRGB[0];
nRGB[1]=255-nRGB[1];
nRGB[2]=255-nRGB[2];
//设置像素点颜色
setPixelColor(nRGB,nHeight,nWidth);
}
}
bmpSrc->SetBitmapBits(dwBmByteSize, pBmBits);
}
位图反相的方法是:逐个像素获取位图(BMP)图像的RGB颜色信息,将RGB各分量设置成对应分量与255的差的绝对值。
0 0
- VC编程实现位图图像二值化、反相
- VC编程实现位图图像二值化、反相
- VC编程实现对位图图像自动色阶处理
- VC编程实现对位图图像自动色阶处理
- VC编程使用3种方案实现位图图像灰度化
- VC编程使用3种方案实现位图图像灰度化
- VC编程实现位图处理类(显示位图、加载位图、获取/设置像素点颜色)
- VC编程实现位图处理类(显示位图、加载位图、获取/设置像素点颜色)
- VC编程实现位图拷贝、切除空白边
- VC编程实现位图拷贝、切除白边
- VC 透明位图 实现透明位图类
- VC实现BMP位图实现
- VC 实现拉伸位图 笔记
- VC图像编程
- VC图像编程
- GDAL实现图像反色
- OpenGL基础图形编程 - 位图和图像
- OpenGL基础图形编程 - 位图和图像
- 值传递和引用传递的区别
- YUI table 拓展使用
- linux shell脚本编程if语句内判断参数详解
- android的viewpager控件的使用
- 图解Git
- VC编程实现位图图像二值化、反相
- Android Studio 快捷键
- jquery文字折叠展开
- git恢复节点
- UI特效
- 关于ThreadLocal的一道面试题(酷我公司)
- poj 3297 Fliptile 深搜
- VC编程实现位图拷贝、切除空白边
- 如何搜狗浏览器标题栏小图片不显示问题