Обрезать изображение с OpenCV в C

Я хочу обрезать 1 пиксель со всех сторон изображения. Мой код хорошо работает на некоторых полях, но не работает на некоторых полях (например, widthleft=widthright=heightup=heightdown=1). Я должен использовать C, а не C++.

IplImage* edgecuter_v3(unsigned int height, unsigned int width,
    IplImage* p_in_img_grey) {
unsigned int widthleft, widthright, heightup, heightdown, heighteff;
unsigned int widtheff;
widthleft = 1;
widthright = 1;
heightup = 1;
heightdown = 1;
widtheff = width - widthleft - widthright;
heighteff = height - heightup - heightdown;

IplImage *p_out_img;

unsigned char *p_in_img_data;
p_in_img_data = (unsigned char *) p_in_img_grey->imageData;
unsigned char (*p_char_array_in)[width];
p_char_array_in = (unsigned char (*)[width]) p_in_img_data;

p_out_img = cvCreateImage(cvSize(widtheff, heighteff), IPL_DEPTH_8U, 1);
unsigned char *p_out_img_data;
p_out_img_data = (unsigned char *) p_out_img->imageData;
unsigned char (*p_char_array_out)[widtheff];
p_char_array_out = (unsigned char (*)[widtheff]) p_out_img_data;

unsigned int row_indx;
unsigned int col_indx;
for (row_indx = 0; row_indx < heighteff ; row_indx++) {
    for (col_indx = 0; col_indx < widtheff; col_indx++) {
        p_char_array_out[row_indx ][col_indx ] =
                p_char_array_in[row_indx+heightup][col_indx+widthleft];
    }
}
cvNamedWindow("one", CV_WINDOW_AUTOSIZE);
cvShowImage("one", p_out_img);
cvWaitKey(0);
return p_out_img;}

Я сметаю индекс с другими методами и назначениями, но не работает.

            p_char_array_out[row_indx ][col_indx ] =
                p_char_array_in[row_indx+heightup][col_indx+widthleft];

большое спасибо

1 ответ

Решение

Я нашел решение. может быть полезным для других.

  1. По этой ссылке 32- битная граница "Если число столбцов * размер пикселя не кратно 4, то каждая строка, если изображение будет дополнено"
  2. Правильный способ для развертки - использовать "widthStep", а не "width" для рассмотрения площадки

widthStep_r = p_in_img->widthStep;

Другие вопросы по тегам