反转图像
这是我将使用的原始图像。反转图像就像拍摄负片。
原图
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { //读取图像 Mat img = imread("MyPic.jpg"); namedWindow("Original"); imshow("Original", img); //反转图像 bitwise_not(img, img); namedWindow("Inverted"); imshow("Inverted", img); waitKey(0); destroyAllWindows(); return 0; }
反转图
解说
bitwise_not(img, img);此函数将第一个参数中图像每个元素的每个位取反,然后将结果放入第二个参数图像中。
此功能可以处理图像。这意味着可以将相同的变量用于第一和第二参数。
例- | 对于8位图片,值0将映射为(255-0)= 255 |
值46将映射到(255-46)= 209 | |
对于16位图像,值0将映射到(65535-0)= 65535 | |
值46将映射为(65535-46)= 65489 |
void bitwise_not(InputArray src, OutputArray dst, InputArray mask=noArray()) 该函数计算输入数组按元素按位求逆。 对于浮点输入数组,其特定于机器的位表示形式(通常符合IEEE754)用于操作。 在多通道阵列的情况下,每个通道都是独立处理的。 参数:
- src – 输入数组。
- dst – 输出数组,其大小和类型与输入数组相同。
- mask – 可选的操作掩码,8位单通道数组,用于指定要更改的输出数组的元素。