首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

如何样计算图片下两点的长度CM

2012-09-09 
怎么样计算图片上两点的长度CM如果题,不知道用什么算法呀。[解决办法]没做过类似的东西,不过知道2点坐标,可

怎么样计算图片上两点的长度CM
如果题,不知道用什么算法呀。

[解决办法]
没做过类似的东西,不过知道2点坐标,可以计算出2点之间有多少个像素距离,然后在换算像素和厘米之间的关系,应该还和屏幕分辨率有关,不过应该都有现成的api函数的
[解决办法]
应该可以用三角函数(直角三边),先计算出两边,即可得出两点的距离。
[解决办法]
先计算两点间的像素多少,根据dpi(每英寸多少像素)换算出多少厘米。
以前写的,希望有点用

C/C++ code
// 以下代码适用c++builder,windows系统//---------------------------------------// 功能:获取桌面dpi//---------------------------------------int __fastcall GetDeskTopDpi(){    HDC    hdc;    hdc = ::GetDC(::GetDesktopWindow());    int dpi = ::GetDeviceCaps(hdc, LOGPIXELSX);    ::ReleaseDC(::GetDesktopWindow(), hdc);    return dpi;}//---------------------------------------// 功能:获取打印机dpi//---------------------------------------int __fastcall GetPrinterDpi(){    return  ::GetDeviceCaps(Printer()->Handle, LOGPIXELSX);}//---------------------------------------// 功能:多少mm(毫米)为多少像素// 参数:dpi是解析度, mm是毫米//---------------------------------------double __fastcall MmToPixel(double dpi, double mm){    // 每mm(毫米)多少像素公式为 dpi / 25.4    return (dpi / 25.4 * mm);}//---------------------------------------// 功能:多少像素为多少毫米// 参数:dpi是解析度, pixel是像素//---------------------------------------double __fastcall PixelToMm(double dpi, double pixel){    return (pixel / (dpi / 25.4));}
[解决办法]
得有长度和像素间转换的方法。
[解决办法]
1、如果是摄像机实时取得的,可以根据摄像机的光学参数来求。需要光学成像、投影几何,立体几何的知识。

2、静态图片上的,如果已知图像分辨率DPI(也就是每英寸有多少个点),通过求取两点间隔像素数来求得距离。

热点排行