我正在尝试访问图像的每个像素以执行操作并将其返回到图像,有人知道如何执行此操作,因为我已经完成此操作但是在编译时它标记我错了。 / p>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>
using namespace cv;
using namespace std;
int main( int argc, char** argv ){
char* source_window = "Source image";
Mat nueva;
Mat img = imread("img.jpg",CV_LOAD_IMAGE_COLOR);
unsigned char *input = (unsigned char*)(img.data);
int i,j,b;
for(int i = 0;i < img.cols;i++){
for(int j = 0;j < img.rows;j++){
b = input[i+1][j+1] ;
nueva[i][j] = b;
}
}
imshow( source_window, nueva );
}
答案 0 :(得分:-1)
我认为您可以使用此代码
int nl= image.rows;
int nc= image.cols * image.channels();
for (int j=0; j<nl; j++) {
uchar* data= image.ptr<uchar>(j);
for (int i=0; i<nc; i++) {
data[i]= data[i]/div*div + div/2;
}
}