2012-05-03 14 views

Respuesta

5

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) 
1

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.

+0

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

-1

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

+0

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

+1

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

Cuestiones relacionadas