位图比较(通过CDC)为什么会差别? 先把一个某个应用程序的界面抓下来, 保存成位图; 然后导入该位图并Select进CDC里; 同时直接通过该应用程序的句柄来获取DC, 然后对这2个DC用GetPixel逐点比较, 为什么会不同程度的差别, 分块比较时有时不匹配的点只有几个, 有时却十几个甚至那块区域一半以上的点都是不匹配的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果数据没对齐那就不会出现有时为0的情况了吧?把应用程序的界面把全部COPY到一个装有一个CBitmap的DC里误差又少了不少... 哎真不知道怎么搞的 我也遇到过这样的问题,觉得有可能是抓图的问题,你是用print screen抓图,然后用windows的“绘图”保存的吗? 不应该吧,是不是色深不统一,楼主确定存的是bmp,系统色深?应该是很确定的值啊,系统调到256色再试试? 是用print screen抓图,然后用windows的“绘图”保存的...但即使对2个同样使用这种方式保存下来的图片进行比较也是差不多的结果, 那这又是为什么呢? 几年就发现这个问题了,当时我是用VB做一个“连连看”作弊器(就是按下热键后显示出可以连起来的两个图标啦),为了把游戏窗口上图标的布局输入数组中,以便进一步AI计算,用了最原始的方法,取窗口中特征点与样图对应点进行比较,结果发现个别图标和样图怎么对特征点也对不上。后来回想,可能是系统进行了色彩校正的原因。 目前我知道系统进行色彩校正的地方至少有两处:1 “显示属性”->“外观”->“效果”选项中有个字体边缘平滑的设置,当然,这个只对文字有效,楼主的情况不在此例;2 “显示属性”->“设置”->“高级”标签下也有一个色彩校正的地方,不同的显卡细节也不尽相同,我的机器是845G系列整合显卡,在“Intel(R) Extreme Graphics”标签中,点“图形属性...”按钮,在弹出的窗口中有个“颜色”标签,可以进行色彩Gama值校正。另外,安装Photoshop软件后,在“控制面板”中好象也有个专门的地方可以调整色彩Gama值,两者有异曲同工之处。通常,我们不对这里进行设置,默认的校正情况是一条45度的对角斜线,但这不等于系统就什么也不处理,只是尽量忠实地还原色彩(或者说显示出与指定色彩最接近的颜色),所以色彩难免有些出入。 谢谢Snow_Ice11111(雪上加冰). 看来要完全匹配是不可能. 我现在采用的方法是给个误差值, 在范围内就认为是匹配的. 但是有时比较结果差别比较大的时候就无能为力了.看来得另想办法了 使用ATI显卡的朋友这种情况应该会有所改善,采用他们的芯片的显卡色彩还原更真实一直是他们的卖点,有的朋友可以试试。 如何在CMFCCaptionBar添加多个按钮? “static_cast” : 无法从“LONG (__thiscall CRangeDlg::* )(LONG,UINT)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” 黑箱子问题 关于自删除问题 有谁知道工程如何拼在一起 高分求基于snort网络入侵检测源码 一个关于DLL(win32)输出数据的问题 关于menu问题 数据库问题 回调函数运行时间太长影响了程序性能,怎么办? 怎样从一个窗口的ID获得窗口的句柄? 如何双击Edit框,使其enable 和disable
把应用程序的界面把全部COPY到一个装有一个CBitmap的DC里误差又少了不少... 哎真不知道怎么搞的
但即使对2个同样使用这种方式保存下来的图片进行比较也是差不多的结果, 那这又是为什么呢?
1 “显示属性”->“外观”->“效果”选项中有个字体边缘平滑的设置,当然,这个只对文字有效,楼主的情况不在此例;
2 “显示属性”->“设置”->“高级”标签下也有一个色彩校正的地方,不同的显卡细节也不尽相同,我的机器是845G系列整合显卡,在“Intel(R) Extreme Graphics”标签中,点“图形属性...”按钮,在弹出的窗口中有个“颜色”标签,可以进行色彩Gama值校正。另外,安装Photoshop软件后,在“控制面板”中好象也有个专门的地方可以调整色彩Gama值,两者有异曲同工之处。
通常,我们不对这里进行设置,默认的校正情况是一条45度的对角斜线,但这不等于系统就什么也不处理,只是尽量忠实地还原色彩(或者说显示出与指定色彩最接近的颜色),所以色彩难免有些出入。
看来得另想办法了