#include <spdlog/spdlog.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector>
int main(int argc, char* argv[]) {
cv::Mat src = cv::imread("../data/lena.jpg", -1);
if (src.empty()) {
return EXIT_FAILURE;
}
cv::Mat dst1(src.size(), src.type());
for (size_t row = 0; row < src.rows; row++) {
for (size_t col = 0; col < src.cols; col++) {
if (src.channels() == 1) {
int val = src.at<uchar>(row, col);
src.at<uchar>(row, col) = 255 - val;
} else if (src.channels() == 3) {
int b = src.at<cv::Vec3b>(row, col)[0];
int g = src.at<cv::Vec3b>(row, col)[1];
int r = src.at<cv::Vec3b>(row, col)[2];
dst1.at<cv::Vec3b>(row, col)[0] = 255 - b;
dst1.at<cv::Vec3b>(row, col)[1] = 255 - g;
dst1.at<cv::Vec3b>(row, col)[2] = 255 - r;
}
}
}
cv::Mat dst2;
cv::bitwise_not(src, dst2);
cv::imshow("src", src);
cv::imshow("dst1 custom", dst1);
cv::imshow("dst2 cv::bitwise_not", dst2);
cv::waitKey();
cv::destroyAllWindows();
return EXIT_SUCCESS;
}
cv::bitwise_not
于 2024-07-07 23:10:07 首次发布