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); }
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); }