Q:

Error al usar el método imread sobre rutas o nombres de archivo con tilde

import cv2

imagen =  cv2.imread("./imagenes/fotografía.jpg")
cv2.imshow("imagen", imagen)

Al ejecutar este código, recibo el siguiente error:
Traceback (most recent call last):
  File "C:\Users\usuario\Desktop\prueba.py", line 5, in <module>
    cv2.imshow("imagen", imagen)
cv2.error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:325: error: (-215) size.width>0 && size.height>0 in function cv::imshow

El error se presenta siempre que en la ruta se encuentre una tilde, sin importar si es el nombre del archivo o del directorio.
Ya existe en StackOverflow una pregunta por el mismo motivo, pero ésta fue formulada hace más de dos años y no ha sido respondida:
Error al abrir imagen con cv2.imread
Intenté con las recomendaciones de los comentarios, pero no funcionan.

A:

Parece ser que imread/imwrite solo acepta rutas ascii. La única forma que se me ocurre de lidiar con esto es cargar la imagen en un array NumPy previamente y luego usar cv2.imdecode que permite leer imágenes desde un buffer en memoria (un array NumPy): 
import cv2
import numpy as np

img_array = np.fromfile("./imagenes/fotografía.jpg", np.uint8)
imagen = cv2.imdecode(img_array, cv2.IMREAD_UNCHANGED)

también se podría generar el array desde un objeto bytearray, lo cual puede ser útil también en otras situaciones (imagen desde url, desde cadena de bytes en memoria, etc):
import cv2
import numpy as np

with  open("./imagenes/fotografía.jpg", "rb") as file:
    img_array = np.asarray(bytearray(file.read()), dtype=np.uint8)
imagen = cv2.imdecode(img_array, cv2.IMREAD_UNCHANGED)

