#include
using namespace cv;
//using namespace std;
int main() {
Mat src = imread("E:/digitalimage/Pxxel_wr/1.jpg");
if (src.empty()) {
print("Could not load image...");
return -1;
}
imshow("Input Windows", src);
QuickDemo qd;
qd.pixel_visit_Demo(src);
waitKey(0);
destroyAllWindows();
return 0;
}
//Quickopencv.h
#include
using namespace cv;
class QuickDemo{
public:
void colorSpace_Demo(Mat& image);
void mat_creation_demo(Mat& image);
void pixel_visit_Demo(Mat& image);
};
//Quick_demo.cpp
#include
void QuickDemo::colorSpace_Demo(Mat& image) {
Mat gray, hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
cvtColor(image, gray, COLOR_BGR2GRAY);
imshow("HSV", hsv);
imshow("GRAY", gray);
imwrite("D:/hsv.png", hsv);
imwrite("D:/gray.png", gray);
}
void QuickDemo::mat_creation_demo(Mat& image) {
Mat m1, m2;
m1 = image.clone();
image.copyTo(m2);
//以1赋值
Mat m3 = Mat::zeros(Size(512, 512), CV_8UC3);
m3 = Scalar(127,127,127);
std::cout << "width:" << m3.cols << "height:"
<< m3.rows << "channels:" << m3.channels() << std::endl;
std::cout << m3 << std::endl;
imshow("创建窗口",m3);
}
void QuickDemo::pixel_visit_Demo(Mat& image) {
int w = image.cols;
int h = image.rows;
int dims = image.channels();
for (int row = 0; row < h; row++)
for (int col = 0; col < w; col++) {
if (dims == 1) {//灰度图像
int pv = image.at(row, col);
image.at(row, col) = 255 - pv;
}
if (dims == 3) {//彩色图像
Vec3b bgr = image.at(row, col);
image.at(row, col)[0] = 255 - bgr[0];
image.at(row, col)[1] = 255 - bgr[1];
image.at(row, col)[2] = 255 - bgr[2];
}
imshow("Presentation", image);
}
}
错误如图