¿Hay una forma incorporada de reducir la resolución de una imagen en OpenCV 2.3.1 sin un alisado gaussiano previo (que se realiza mediante la función pyrDown C++).Reducción de resolución sin suavizado
Gracias.
¿Hay una forma incorporada de reducir la resolución de una imagen en OpenCV 2.3.1 sin un alisado gaussiano previo (que se realiza mediante la función pyrDown C++).Reducción de resolución sin suavizado
Gracias.
Quizás esté buscando resize().
#Python code:
pct = 0.2
newsize = (int(large_img.shape[0] * pct), int(large_img.shape[1] * pct))
small_img = cv2.resize(large_img, newsize)
resize() con interpolación = INTER_NEAREST.
EDITAR
hmmm, lo que si se escribe la función de sí mismo?
double factor;
int newcols = round(mat.cols*factor);
int newrows = round(mat.rows*factor);
Mat newmat = Mat(newcol, newrows, mat.type());
for (int i=0;i<mat.cols;i++){
for (int j=0;j<mat.cols;j++){
newmat_<yourtype> (round(i*factor), round(j*factor)) = mat_<yourtype>(i, j);
}
}
No he comprobado si el código funciona o no (lo más probable es que no), pero se entiende.
Puede utilizar imagen Pirámides: pyrDown, los vínculos del documento OpenCV es http://docs.opencv.org/2.4/doc/tutorials/imgproc/pyramids/pyramids.html
Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (// meta.stackoverflow.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – Raju
La pregunta específicamente pregunta sin suavizado y menciona pyrDown como un ejemplo de contador. A menos que incluya una explicación sobre cómo pyrDown se puede usar para reducir la resolución sin suavizar, esto no responde a la pregunta. – Cecilia
Más específicamente, me gustaría tirar todos incluso filas y columnas. Por desgracia, su sugerencia escupe una gran cantidad de BUUUs: 'plantilla Mat_ DownsampleFromGrid8ToGrid16 (Mat_ y x) { \t Mat_ res (Tamaño (x.cols/2, x.rows/2)); \t for (int i = 0; i tmp; \t cambiar el tamaño (x, tmp, Tamaño (res.cols, res.rows), 0, 0, INTER_NEAREST); \t for (int i = 0; i