1、at()函数遍历图像像素
函数at()对矩阵中某个像素进行读取或者对某个像素进行复制操作。但是效率并不高。
例如:uchar value = grayim.at<uchar>(i,j); //读出第i行第j列像素值
grayim.at<uchar>(i,j) = 128; //将第i行第j列像素值设置为128
//建立单通道的grayim以及3通道的colorim,遍历图像中所有的像素并赋值
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main(int argc, char* argv[]){
Mat grayim(600, 800, CV_8UC1);
Mat colorim(600, 800, CV_8UC3);
//遍历所有像素,并设置像素值
for( int i = 0; i < grayim.rows; ++i){
for( int j = 0; j < grayim.cols; ++j ){
grayim.at<uchar>(i,j) = (i+j)%255;
}
} //遍历所有像素,并设置像素值 for( int i = 0; i < colorim.rows; ++i){ for( int j = 0; j < colorim.cols; ++j ){