directorio
imagen de lectura y escritura y
Modificar los valores de los píxeles
imagen de lectura y escritura y
carga imread se puede especificar como una imagen RGB o una escala de grises
Imwrite guardar el tipo de archivo de imagen se determina por la extensión
Lectura y escritura píxeles
La lectura de un valor de píxel del píxel GRIS
(CV_8UC1) Intensidad Scalar = img.at <uchar> (y, x);
或者 intensidad Scalar = img.at <uchar> (punto (x, y));
La lectura de un valor de píxel del píxel RGB
Vec3f intensidad = img.at <Vec3f> (y, x);
flotar azul = intensity.val [0];
flotar verde = intensity.val [1];
flotador rojo = intensity.val [2];
Modificar los valores de los píxeles
imagen en escala de grises
img.at <uchar> (y, x) = 128;
imagen de tres canales RGB
img.at <Vec3b> (y, x) [0] = 128; // blue
img.at <Vec3b> (y, x) [1] = 128; // verde
img.at <Vec3b> (y, x) [2] = 128; // rojo
asignación de la imagen en blanco
img = Escalar (0);
la selección de ROI
r Rect (10, 10, 100, 100);
Mat smallImg = img (r);
Vec3b y Vec3F
secuencia Vec3b correspondiente a tres canales son de color azul, tipos UCHAR verde, rojo de datos.
Vec3f correspondiente a un tipo de flotador de tres canales
La conversión de CV32F1 CV_8UC1 para lograr los siguientes: src.convertTo (dst, CV_32F);
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat src;
src = imread("D:/vcprojects/images/test.png");
if (src.empty()) {
cout << "could not load image..." << endl;
return -1;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
/*Mat dst;
dst = Mat(src.size(), src.type());
dst = Scalar(127, 0, 255);
namedWindow("output", CV_WINDOW_AUTOSIZE);
imshow("output", dst);*/
Mat dst;
//src.copyTo(dst);
namedWindow("output", CV_WINDOW_AUTOSIZE);
cvtColor(src, dst, CV_BGR2GRAY);
printf("input image channels : %d\n", src.channels());
printf("output image channels : %d\n", dst.channels());
int cols = dst.cols;
int rows = dst.rows;
printf("rows : %d cols : %d\n", rows, cols);
const uchar* firstRow = dst.ptr<uchar>(0);
printf("fist pixel value : %d\n", *firstRow);
Mat M(100, 100, CV_8UC1, Scalar(127));
//cout << "M =" << endl << M << endl;
Mat m1;
m1.create(src.size(), src.type());
m1 = Scalar(0, 0, 255);
Mat csrc;
Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
filter2D(src, csrc, -1, kernel);
Mat m2 = Mat::eye(2, 2, CV_8UC1);
cout << "m2 =" << endl << m2 << endl;
imshow("output", m2);
waitKey(0);
return 0;
}