Estoy implementando un algoritmo de procesamiento de imágenes en C++ usando openCV, en el cual el primer paso requiere que la imagen se convierta en una matriz. Sé que cuando una imagen se carga en openCV, ya está almacenada como una matriz. La imagen que estoy usando tiene un tamaño de 80 x 60, así que supongo que la matriz en la que está almacenada es de un tamaño de 80 x 60. Sin embargo, me gustaría poder ver primero esta matriz y luego poder remodelarla en una matriz con el mismo no. de píxeles, pero como una columna larga en su lugar. es decir, la matriz de 80 x 60 se convertiría ahora en una matriz de 4800 x 1. Intenté investigar libros de texto y en línea, pero fue en vano. Este es mi código hasta ahora. En cualquier caso, no está funcionando porque no puedo, no puedo convertir de 'IplImage *' a 'CvMat *, pero ¿cómo se supone que debo asignar mis valores de píxel a la matriz después de crearla? Por favor, agradecería mucho si alguien pudiera ayudarme con este código.Cómo obtener una matriz de píxeles y remodelar la matriz en openCV
#include "cv.h"
#include "highgui.h"
#include "iostream"
using namespace std;
int main(int argc, char* argv) {
IplImage* img0 = NULL;
CvMat* img0_mat = NULL ;
img0 = cvLoadImage("C:\\new\\walk mii.jpg");
if (!img0){
return -1;}
img0_mat = cvCreateMat(80, 60, 1);
img0_mat = img0;
cout <<" matrix " << img0 << endl;
cvWaitKey(0);
return 0;
}
Solo como información: opencv no almacena imágenes en matrices en el sentido de 'int [] []'. Internamente usa solo una dimensión, como 'char []'. – vsz