有关图像测量的问题(100分)

  • 主题发起人 主题发起人 pengle
  • 开始时间 开始时间
P

pengle

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,有没有图像测量的思路或方法,希望不吝赐教。
我主要的目的就是希望能够灵活的测量图片上两点间的距离(不是像素),即两点间的实际长度(毫米、厘米等)
其实说到底就是像素-》尺寸的转换。不知道我理解的对不对。
希望大家帮帮忙。给个思路或代码参考一下。
〔看到过很多这样的软件,能够灵活的测量,就是不知道怎么实现的〕
谢谢大家了。
 
呵呵,又看到你提到这个问题了

晚上我有空 研究一下 记得要多给几分呀
 
谢谢关注。我找了些资料。下午会试验一下,如果问题解决,大家也都增长了知识。分不成问题的。
 
其实图像测量是个非常复杂的过程,不知道你具体需要测量的是针对什么?
 
Activer:
我的要求很简单,就是能够测量图片上任意两点之间的距离。就像自己拿了把尺子一样能够测量实际的距离(图片上两点间的物理距离),不知道你有什么思路可以参考一下。我现在没有什么头绪。但实际上有这样的软件,比如这个软件:
http://www.mycnknow.com/rulersetup.exe
我要的就是这样的功能。
 
这个软件也没有什么嘛
主要就是一个画橡皮线 这个其实就是XOR 再XOR
然后就是数学运算了 以像素为单位计算出长度 然后计算/ratio (等比例尺,否则XY先调整到相同比例尺)

比较难的是那种还需要移动 调整的测量
 
zjan521:
请问如何[以像素为单位计算出长度]?
请详细的给点思路或算法
 
我觉得必须先知道象素与实际尺寸之间的对应关系,比如屏幕上96个象素点是1英寸,
应该和打印机上报表设计时要求得到mm是一样的,
你只需测试一张图片即可。
 
to pengle : 这个软件的长度测量 其实是很简单的,

需要说明的是,像这个软件这样的方法,你不可能得到精确的数值

因为,windows不可能知道屏幕的显示尺寸 (比如,我可以随意调节一下屏幕的大小)

所以它的计算只是一个估算值。

对于一些需要比较精确的测量,需要在图像上下功夫,比如使用定义好长度的对比图片
这样,你只需要知道测量了几个象素,然后根据对比图片的比例 来换算长度,而不需要
考虑屏幕的问题

---------------
对于象素与毫米的关系,你可以通过函数:
GetDeviceCaps 来获取
 
呵呵,对于这个问题,狂找资料。应该基本解决了:贴出代码
//已经转换为了DPMM(每毫米的像素数)
int GetScreenDPI(Single & DPI_X, Single & DPI_Y)
{
HDC dc = GetDC(0);
//HDC dc = CreateDC("DISPLAY",NULL,NULL,NULL);
if(dc)
{
DPI_X = GetDeviceCaps(dc,LOGPIXELSX)/25.4;
DPI_Y = GetDeviceCaps(dc,LOGPIXELSY)/25.4;
return 0;
}
else
{
return -1;
}
//DeleteDC(dc);
}
由于Window的设备无关性。通过这个映射,可以很方便的得出像素距离的实际距离。
大家有没有意见?
 
没有意见 散分吧
 
另外,请大家提供动态画线的函数代码以及动态清楚画线的代码
 
后退
顶部