工控编程吧
标题:
119上位机VC MFC图片锐化效果显示
[打印本页]
作者:
qq263946146
时间:
2015-12-25 22:05
标题:
119上位机VC MFC图片锐化效果显示
(, 下载次数: 1)
上传
点击文件名下载附件
119上位机VC MFC图片锐化效果显示
功能展示
在一些如PHOTOSHOP等图片处理软件上经常用到图片锐化,锐化后的图片,轮廓更加清晰,在图像处理时更容易提取轮廓。我们当前例程实现图片锐化的处理,效果如图;
要点提示
图片的锐化也是将图片的每一个像素的RGB值进行再处理,将处理结果的RGB值重新设置回原来的像素去,像素的RGB值的设置与获取可以用SetPixel(),getrvalue(),getgvalue(),getbvalue()等一些函数
实现功能
1.新建基于对话框的应用程序
2.添加一位图到工程,再拖拽位图控件,修改ID为IDC_BMPSHARP,类型设置为BITMAP,其位图选择刚添加的位图ID,再将此控件关联变量 CStatic m_BmpSharp;
3.添加一按钮控件,关联一函数OnSharp()
void CGkbc8Dlg::OnSharp()
{
CDC * pDC;
CRect rect;
m_BmpSharp.GetClientRect(rect);
pDC = m_BmpSharp.GetDC();
int r1,g1,b1,r2,g2,b2;
for (int i = 1;i<rect.right+1;i++)
for (int j = 1; j< rect.bottom+1;j++)
{
COLORREF color = pDC->GetPixel(i,j);
COLORREF nextcolor = pDC->GetPixel(i-1,j-1);
r1 = (color & 0xFF);
g1 = (int)(color & 62580) / 256;
b1 = (int)(color & 0xFF0000) / 65536;
r2 = (nextcolor & 0xFF);
g2 = (int)(nextcolor & 62580) / 256;
b2 = (int)(nextcolor & 0xFF0000) / 65536;
复制代码
r1+= (r1 - r2) /2;
g1 += (g1 - g2) / 2;
b1 += (b1 - b2) / 2;
r1=r1>255?255:r1;
r1=r1<0?0:r1;
b1=b1>255?255:b1;
b1=b1<0?0:b1;
g1=g1>255?255:g1;
g1=g1<0?0:g1;
pDC->SetPixel(i,j,RGB(r1,g1,b1));
}
ReleaseDC(pDC);
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/f442177c0f2e2f24fbc126d636cf23b5/0/0/w_19rt7ovi2h.swf-albumId=5088474709-tvId=5088474709-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 1)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4