工控编程吧
标题:
121上位机VC MFC图片灰度化效果显示
[打印本页]
作者:
qq263946146
时间:
2015-12-25 22:13
标题:
121上位机VC MFC图片灰度化效果显示
(, 下载次数: 0)
上传
点击文件名下载附件
121上
位机VC MFC图片灰度化效果显示
功能展示
图片的灰度化就是把彩色的图片改换为灰白的图片,在图像处理领域这是最为常用的一步,我们当前例程实现了将一位图转换为灰色图片的功能,效果如图;
要点提示
图片的灰度化通常是根据图片中像素的RGB分量来决定RGB各自的权重,我们当前例程随意 设置了RGB的权重为0.39,0.48,0.15; 在知晓权重后我们可以通过指定方式计算得一值,如我们当前例程DWORDgray = (0.39*r+0.48*g+0.15*b); 然后再设置原先像素的颜色值COLORREF color = RGB(gray,gray,gray);SetPixel(i,j,color);
实现功能过程
1.新建基于对话框的应用程序
2.往工程添加一位图,然后拖拽一图片控件,修改ID为IDC_BMP,类型为BITMAP,位图设置为刚才添加位图的ID,再给此控件关联一变量 CStatic m_Bmp;
3.添加一按钮控件,关联函数,实现图片灰度化;
void CGkbc8Dlg::OnButton1()
{CDC* pDC = m_Bmp.GetDC();
CRect rect ;
m_Bmp.GetClientRect(rect);
COLORREF color;
DWORD gray;
BYTE r,g,b;
for (int i = 0; i<rect.right;i++)
for (int j = 0;j<rect.bottom;j++)
{color = pDC->GetPixel(i,j);
r = GetRValue(color);
g = GetGValue(color);
b = GetRValue(color);
gray = (0.39*r+0.48*g+0.15*b);
color = RGB(gray,gray,gray);
pDC->SetPixel(i,j,color);
}
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/98eecd6bd96c56d5c02ab87d45c32e40/0/0/w_19rt7ozh0x.swf-albumId=5088478109-tvId=5088478109-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 1)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4