Programación de Gráficos - Dr.

 
Vista:

Dr.

Publicado por Luis (1 intervención) el 06/03/2007 15:49:14
Hola.

Necesito ayuda para realizar unas mediciones. Tengo microfotografias digitales en las cuales necesito realizar un monton de mediciones. Hasta ahora lo estoy haciendo mediante el software Microsoft Photoeditor simplemente anotando el valor de los pixeles superiores e inferiores en el eje x, restando y de esta forma puedo conocer el tamaño de los objetos a medir (son circulos con lo cual no es dificil). ¿No hay forma de realizar de forma automatica esta resta?. Basicamente lo que necesitaria es un sistema que anote automaticamente al hacer click con el raton en el primer punto y restara el valor al hacer click sobre el segundo punto del objeto a medir, la resta bastara con que diera la diferencia en numero de pixeles y colocara el valor en el portapapeles.

Si alguien puede aportar alguna idea, gracias de antemano, no soy programador, solo controlo un poco VB y por tanto no soy capaz ni de iniciar un programa aunque me lo sugirierais.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Automatización de mediciones en microfotografías

Publicado por Alejandro (110 intervenciones) el 06/04/2024 00:07:58
Hola Luis.

Para automatizar las mediciones en tus microfotografías, te recomendaría utilizar un lenguaje de programación como Python, que es fácil de aprender y cuenta con bibliotecas especializadas en el procesamiento de imágenes.

Una opción sería utilizar la biblioteca OpenCV, que te permitirá cargar la imagen, seleccionar los puntos de interés y realizar la resta de los valores de los píxeles automáticamente. Aquí te dejo un ejemplo básico de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import cv2
 
def calcular_diferencia(event, x, y, flags, param):
    global puntos, imagen
 
    if event == cv2.EVENT_LBUTTONDOWN:
        puntos.append((x, y))
        if len(puntos) == 2:
            diferencia = abs(imagen[puntos[0][1], puntos[0][0]] - imagen[puntos[1][1], puntos[1][0]])
            print("La diferencia en número de píxeles es:", diferencia)
            # Aquí puedes copiar el valor al portapapeles
 
# Carga la imagen
imagen = cv2.imread("ruta_de_tu_imagen.jpg")
 
# Crea una ventana para mostrar la imagen
cv2.namedWindow("Imagen")
cv2.setMouseCallback("Imagen", calcular_diferencia)
 
# Lista para almacenar los puntos seleccionados
puntos = []
 
while True:
    cv2.imshow("Imagen", imagen)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
 
cv2.destroyAllWindows()

Recuerda reemplazar "ruta_de_tu_imagen.jpg" con la ruta de tu imagen. Al ejecutar este código, se abrirá una ventana con la imagen y podrás hacer clic en dos puntos para obtener la diferencia en número de píxeles.

Espero que esta solución te sea útil.

Saludos, Alejandro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar