예제 #1
0
void RoiPrefsDlg::on_RoiHandlesButton_clicked()
{
    QColor c = QColorDialog::getColor( ui->RoiHandlesButton->palette().background().color(), this );
    if ( c.isValid() )
    {
        m_AnchorColor = c;
        ui->RoiHandlesButton->setPalette(QPalette(m_AnchorColor));
        MIL_INT anchorcolor = M_RGB888(c.red(),c.green(),c.blue());
        MdispControl(m_MilDisplay, M_ROI_HANDLE_COLOR, anchorcolor);
        MdispControl(m_MilDisplay, M_UPDATE, M_NULL);
    }
}
ControlImagenes::ControlImagenes()
{
    //Inicilizacion
//    m_Milsistema        = M_NULL;
    m_Milaplicacion     = M_NULL;
    m_Mildisplay        = M_NULL;
    m_Miloverlay        = M_NULL;
    m_lut_overlay       = M_NULL;
    m_numImagenes       = 0;
    m_nAnchoImagen      = -1;
    m_nAltoImagen       = -1;
    for (int i=0;i<MAX_NUM_IMAGENES;i++)
        m_Milimagen[i]  = M_NULL;        
    m_MilRGB            = M_NULL;
    M_Clasificacion     = M_NULL;
    m_bufClasificacionSelectiva = NULL;
    m_bDefiniendoArea   = false;
    m_bPintandoRect     = false;


	MappAlloc(M_DEFAULT, &m_Milaplicacion);	// Selecciono la aplicación MIL.
	if ( m_Milaplicacion == M_NULL ) {
        AfxMessageBox("Error: No se pudo inicilizar MIL", MB_ICONERROR | MB_OK);
	}

	//	Pregunto al sistema la versión de la librería de control de proceso de imagen
	//MappInquire(M_VERSION, &m_Milversion);

    // pruebas MIL 8
//	MsysAlloc(M_SYSTEM_METEOR_II_1394, M_DEV0, M_DEFAULT, &M_sistema);	// Selecciono un sistema hardware

//	if ( M_sistema == M_NULL )  {
//        AfxMessageBox("Error: No se pudo inicilizar MIL", MB_ICONERROR | MB_OK);
//	}

    //	Display normal para las imágenes adquiridas y procesadas. 
	MdispAlloc(M_DEFAULT_HOST, M_DEFAULT, "M_DEFAULT", M_WINDOWED + M_GDI_OVERLAY, &m_Mildisplay);
	if ( m_Mildisplay == M_NULL )  {
        AfxMessageBox("Error: No se pudo inicilizar MIL", MB_ICONERROR | MB_OK);
	}

	// El texto tiene color de fondo transparente
    MgraControl(M_DEFAULT, M_BACKGROUND_MODE, M_TRANSPARENT);

    // OVERLAY (diferente para MIL 8 y anteriores
    if (M_MIL_CURRENT_VERSION >= 8.0)
    {
        // Inicializar colores para pintar areas
        m_listaColor[NEGRO_POS] =     M_RGB888(NEGRO_R,NEGRO_G,NEGRO_B);
        m_listaColor[MARRON_POS] =     M_RGB888(MARRON_R,MARRON_G,MARRON_B);
        m_listaColor[ROJO_POS] =     M_RGB888(ROJO_R,ROJO_G,ROJO_B);
        m_listaColor[CYAN_POS] =     M_RGB888(CYAN_R,CYAN_G,CYAN_B);
        m_listaColor[NARANJA_POS] =     M_RGB888(NARANJA_R,NARANJA_G,NARANJA_B);
        m_listaColor[VERDE_POS] =     M_RGB888(VERDE_R,VERDE_G,VERDE_B);
        m_listaColor[AZUL_POS] =     M_RGB888(AZUL_R,AZUL_G,AZUL_B);
        m_listaColor[MORADO_POS] =     M_RGB888(MORADO_R,MORADO_G,MORADO_B);
        m_listaColor[GRIS_POS] =     M_RGB888(GRIS_R,GRIS_G,GRIS_B);
        m_listaColor[ORO_POS] =     M_RGB888(ORO_R,ORO_G,ORO_B);
        m_listaColor[ROSA_POS] =    M_RGB888(ROSA_R,ROSA_G,ROSA_B);

        MdispControl(m_Mildisplay, M_OVERLAY, M_ENABLE);

        // Establezco TRANSPARENTE como color transparente
        MdispControl(m_Mildisplay, M_TRANSPARENT_COLOR, TRANSPARENTE);

        //Tipo de interpolacion para el redimensionamiento de la imagen en el display
        //Si se activa en MIL 8, quedan lineas de color transparernte en el overlay cuando el zoom no es 1
        //MdispControl(m_Mildisplay, M_INTERPOLATION_MODE, M_NEAREST_NEIGHBOR);
    }
    else
    {
        // Inicializar colores para pintar areas
        m_listaColor[0] =     NEGRO   ;
        m_listaColor[1] =     ROJO_OSC  ;
        m_listaColor[2] =     ROJO    ;
        m_listaColor[3] =     CYAN ;
        m_listaColor[4] =     AMARILLO;
        m_listaColor[5] =     VERDE   ;
        m_listaColor[6] =     AZUL    ;
        m_listaColor[7] =     MAGENTA_OSC  ;
        m_listaColor[8] =     GRIS    ;
        m_listaColor[9] =     AMARILLO_OSC     ;
        m_listaColor[10] =    GRIS_CLA   ;

        // LUT
	    MbufAllocColor(M_DEFAULT_HOST, 3L, 256L, 1L, 8L+M_UNSIGNED, M_LUT, &m_lut_overlay);
	    if ( m_lut_overlay == M_NULL)  {
            AfxMessageBox("Error: No se pudo inicilizar MIL", MB_ICONERROR | MB_OK);
	    }
    
	    crea_LUT_overlay(m_lut_overlay, 0);	// Genera LUT color y corrección de gamma
	    configura_overlay(m_Mildisplay, M_NULL, &m_Miloverlay, 1); // repartido entre aqui y CargarImagen // M_NULL, antes ponia M_imagen1 que ya no esta disponible en Analisis, seguramente falle

        //	Asocio la LUT de pseudo-color al display de overlay
	    MdispControl(m_Mildisplay, M_OVERLAY_LUT, m_lut_overlay);


	    //	Modifico la configuración del display: m_Mildisplay_normal.
	    //		- Deshabilito el menú de tareas.
	    //		- Deshabilito la barra del título.
	    //	    - Fijo la posición de la ventana en 0,0. 
	    MdispControl(m_Mildisplay, M_WINDOW_MENU_BAR, M_DISABLE);
	    MdispControl(m_Mildisplay, M_WINDOW_TITLE_BAR, M_DISABLE);
	    MdispControl(m_Mildisplay, M_WINDOW_INITIAL_POSITION_X, 0 );
	    MdispControl(m_Mildisplay, M_WINDOW_INITIAL_POSITION_Y, 0 );

        // Establezco TRANSPARENTE como color transparente
		MdispOverlayKey(m_Mildisplay, M_KEY_ON_COLOR, M_EQUAL, 0xff, TRANSPARENTE);
    }

    // Bitmap de fondo para poner siempre que no haya mas imagenes
    BYTE bBits[] = {0xd8,0xe9,0xec};
    m_backgound_bitmap.CreateBitmap(1,1,1,32,bBits);        
}
예제 #3
0
void MdispGtkView::GraphicLogo(MIL_INT PosX, MIL_INT PosY, MIL_INT CellSize)
   {
   MIL_DOUBLE MILYellow1 = M_RGB888(255, 201,  10);
   MIL_DOUBLE MILYellow2 = M_RGB888(254, 189,  17);
   MIL_DOUBLE MILYellow3 = M_RGB888(255, 230,   0);
   MIL_DOUBLE MILYellow4 = M_RGB888(246, 139,  31);

   MIL_DOUBLE MILGreen1  = M_RGB888(  0, 141,  76);
   MIL_DOUBLE MILGreen2  = M_RGB888(  0, 101,  49);
   MIL_DOUBLE MILGreen3  = M_RGB888(  0, 151,  78);
   MIL_DOUBLE MILGreen4  = M_RGB888(  0, 167, 115);

   MIL_DOUBLE MILRed1    = M_RGB888(209,  24,  32);
   MIL_DOUBLE MILRed2    = M_RGB888(238,  49,  36);
   MIL_DOUBLE MILRed3    = M_RGB888(189,  20,  27);
   MIL_DOUBLE MILRed4    = M_RGB888(137,   3,   4);

   MIL_DOUBLE MILPurple1 = M_RGB888(126,  69, 154);
   MIL_DOUBLE MILPurple2 = M_RGB888( 76,  42, 125);
   MIL_DOUBLE MILPurple3 = M_RGB888(111, 116, 182);
   MIL_DOUBLE MILPurple4 = M_RGB888( 85,  79, 162);

   MgraColor(m_MilGraphContext, MILYellow1);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX           , PosY           , CellSize*3, CellSize*3, 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILYellow2);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize  , PosY+CellSize  , CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILYellow3);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*2, PosY+CellSize  , CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILYellow4);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize  , PosY+CellSize*2, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);

   MgraColor(m_MilGraphContext, MILGreen1);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*3, PosY           , CellSize*3, CellSize*3, 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILGreen2);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*3, PosY+CellSize  , CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILGreen3);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*4, PosY+CellSize  , CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILGreen4);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*4, PosY+CellSize*2, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);

   MgraColor(m_MilGraphContext, MILRed1);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX           , PosY+CellSize*3, CellSize*3, CellSize*3, 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILRed2);               
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize  , PosY+CellSize*3, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILRed3);               
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*2, PosY+CellSize*4, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILRed4);               
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize  , PosY+CellSize*4, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);

   MgraColor(m_MilGraphContext, MILPurple1);
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*3, PosY+CellSize*3, CellSize*3, CellSize*3, 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILPurple2);                         
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*4, PosY+CellSize*3, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILPurple3);                         
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*3, PosY+CellSize*4, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   MgraColor(m_MilGraphContext, MILPurple4);                         
   MgraRectAngle(m_MilGraphContext, m_MilGraphList, PosX+CellSize*4, PosY+CellSize*4, CellSize  , CellSize  , 0, M_CORNER_AND_DIMENSION+M_FILLED);
   }