在图像处理中,在窗口中打开一幅图像,经灰度变换后,我用鼠标左键点击两下,画一条线,如何提取该线经过像素的灰度值,请大家帮忙了,我刚注册论坛,没什么分,先谢!
解决方案 »
- 开发C++的本机(注意是本机,不是托管ADO.NET是托管的)代码数据库程序,只能用老访问技术吗(ADO,rdo,odbc,oledb...),没有象ADO.net的吗、?
- vc2005编译程序成功后运行不了提示“没有找到MSVCP80D.dll...“
- 怎么在程序中修改静态文本框的文字,另外怎么设置字体及颜色?
- 请教STL的问题.............
- 软件方面关于编码以外的东西的一些讨论,我和朋友的对话,各位发表些高见
- 如何将整数类型转换为字符串,并且连接在另一个字符串后面
- 为什么我的VC6.0不能显示内存泄漏?
- 怎么把toolbar上的关闭按钮弄掉
- 如何在一个视中显示多棵树
- 我做了一个关于位操作的小程序想给大家,希望大家给我提点见解,如何达到高效。
- 对于.DAT图像进行处理的问题
- VC6.0程序重新编译时,程序进程自动开启怎么办?
先找到线的起始坐标,这个很容易,然后用一个CDC:GetPixel()函数,提取每一点的颜色信息。
把这条"黑线"画到等大的白底bmp中.
然后扫描位数据每一点,是RGB( 0xFF, 0xFF, 0xFF )的就放,是RGB( 0, 0, 0 )的就retrun这个pixel的point.
由这个point return灰度图该point上的pixel
(可以用这条线的两个点构成一个矩形,只扫描这个矩形内部点.)当然,可以用直线生成算法求出这条直线所经过的point来return该pixel..
如果不效率:从2点得出直线,再GetPixel()直线上所有点,这样很费时间效率:在视频过程中,到得当前BMP图像的pDataBuf,画直线结束后立即算出每点对应的pDataBuf偏移量(n1....nn)
灰度平均值 = (pDataBuf[n0] + pDataBuf[n1] + ....+ pDataBuf[nn])/(点的总数)直线取点分X轴长和Y轴长两种情况