在图像处理中,在窗口中打开一幅图像,经灰度变换后,我用鼠标左键点击两下,画一条线,如何提取该线经过像素的灰度值,请大家帮忙了,我刚注册论坛,没什么分,先谢!

解决方案 »

  1.   

    不知道理解的是否正确?
    先找到线的起始坐标,这个很容易,然后用一个CDC:GetPixel()函数,提取每一点的颜色信息。
      

  2.   

    这个就得用数学知识了,你得先求出这条直线的方程,然后以x(或y)轴为基础变化x的值,一般是x++,然后求出x++后在直线上对应的y值,然后取出该点的像素值勤就可以了.
      

  3.   

    二楼是正解,如果想自己省点事,可以看看opencv对你有没有帮助。
      

  4.   

    可以变相得到的..
    把这条"黑线"画到等大的白底bmp中.
    然后扫描位数据每一点,是RGB( 0xFF, 0xFF, 0xFF )的就放,是RGB( 0, 0, 0 )的就retrun这个pixel的point.
    由这个point return灰度图该point上的pixel
    (可以用这条线的两个点构成一个矩形,只扫描这个矩形内部点.)当然,可以用直线生成算法求出这条直线所经过的point来return该pixel..
      

  5.   

    2种情况
    如果不效率:从2点得出直线,再GetPixel()直线上所有点,这样很费时间效率:在视频过程中,到得当前BMP图像的pDataBuf,画直线结束后立即算出每点对应的pDataBuf偏移量(n1....nn)
          灰度平均值 = (pDataBuf[n0] + pDataBuf[n1] +  ....+ pDataBuf[nn])/(点的总数)直线取点分X轴长和Y轴长两种情况