我现在编了一个代码是对摄像机图片进行实时处理,在代码中是将图像的RGB数值存储在数组里,现在就需要写一段代码将这些数据的R值或者G值或者B值的大小显示在Pic中,还怎么弄啊??

解决方案 »

  1.   


    Private Sub Command1_Click()
        Dim crr() As Byte
        Dim pic As StdPicture
        Set pic = LoadPicture("D:\3.jpg")
        SavePicture pic, "D:\3.bmp"
        Open "D:\3.bmp" For Binary As #1
        ReDim crr(0 To LOF(1))
        Get #1, , crr
        Close #1
        kuandu = Val(crr(18)) + 256 * Val(crr(19))
        gaodu = Val(crr(22)) + 256 * Val(crr(23))
        cangdu = crr(10) + 256 * crr(11)
        sewei = crr(28) + 256 * crr(29)
        If sewei = 32 Then zijie = 4
        If sewei = 24 Then zijie = 3
        senyu = 4 - (kuandu * zijie) Mod 4
        For i = 0 To kuandu * gaodu - 1
            B = crr(i * zijie + cangdu + 0)
            G = crr(i * zijie + cangdu + 1)
            R = crr(i * zijie + cangdu + 2)
        Next i
    End Sub
    把下面的jpg图片保存到D:\3.jpg
      

  2.   

    都已经“将图像的RGB数值存储在数组里”了,那取各个象素的颜色分量,岂不是轻而易举的事?????现在就需要写一段代码将这些数据的R值或者G值或者B值的大小显示在Pic中
    无法明白你要怎么个“显示”法!
      

  3.   

    因为图片上的RGB是变化的,随着我对设备的调节,每一个像素上面的RGB值也在变,就像找到在调解过程中变化最大的那个点(希望以一个类似于波峰的形状显示出来)。
      

  4.   

    我的图片是一个摄像机传输过来的。通过调节设备,R,G,B他们的变化不是线性的变化,肯定是曲线,所以就想通过编程显示,让他们以类似于示波器那样,能让我一眼看出变化最大的地方。
      

  5.   

    逐点取到一个数组中,然后用 MSChart 显示。
      

  6.   

    Pic.CurrentX=0:Pic.CurrentY=0:
    Pic.Print "R:"+CStr(R)+" G:"+CStr(G)" B:"+CStr(B);