dds
This commit is contained in:
44
Arithmetic operations/bitwise.cpp
Normal file
44
Arithmetic operations/bitwise.cpp
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
#include <opencv2/opencv.hpp>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace cv;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
string path1 = "../img/2.jpg";
|
||||||
|
string path2 = "../img/3.jpg";
|
||||||
|
|
||||||
|
Mat img1 = imread(path1);
|
||||||
|
Mat img2 = imread(path2);
|
||||||
|
|
||||||
|
if (img1.empty() || img2.empty())
|
||||||
|
{
|
||||||
|
cout << "无法读取图片,请检查路径!" << endl;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (img1.size() != img2.size())
|
||||||
|
{
|
||||||
|
cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
|
||||||
|
// 将 img2 缩放到与 img1 相同的尺寸
|
||||||
|
resize(img2, img2, img1.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
Mat result;
|
||||||
|
// bitwise_and() 按位与操作 掩码操作、图像分割
|
||||||
|
// bitwise_or() 按位或操作 图像叠加
|
||||||
|
// bitwise_not() 按位取反操作 图像反色
|
||||||
|
// bitwise_xor() 按位异或操作 图像差异检测
|
||||||
|
bitwise_and(img1, img2, result);
|
||||||
|
|
||||||
|
imshow("Original Image 1", img1);
|
||||||
|
imshow("Original Image 2", img2);
|
||||||
|
imshow("Multiply Result", result);
|
||||||
|
|
||||||
|
// 等待按键后关闭窗口
|
||||||
|
waitKey(0);
|
||||||
|
destroyAllWindows();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
40
Arithmetic operations/multiply.cpp
Normal file
40
Arithmetic operations/multiply.cpp
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#include <opencv2/opencv.hpp>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace cv;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
string path1 = "../img/2.jpg";
|
||||||
|
string path2 = "../img/3.jpg";
|
||||||
|
|
||||||
|
Mat img1 = imread(path1);
|
||||||
|
Mat img2 = imread(path2);
|
||||||
|
|
||||||
|
if (img1.empty() || img2.empty())
|
||||||
|
{
|
||||||
|
cout << "无法读取图片,请检查路径!" << endl;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (img1.size() != img2.size())
|
||||||
|
{
|
||||||
|
cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
|
||||||
|
// 将 img2 缩放到与 img1 相同的尺寸
|
||||||
|
resize(img2, img2, img1.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
Mat result;
|
||||||
|
multiply(img1, img2, result);
|
||||||
|
|
||||||
|
imshow("Original Image 1", img1);
|
||||||
|
imshow("Original Image 2", img2);
|
||||||
|
imshow("Multiply Result", result);
|
||||||
|
|
||||||
|
// 等待按键后关闭窗口
|
||||||
|
waitKey(0);
|
||||||
|
destroyAllWindows();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// 加法
|
// 加法
|
||||||
# include<opencv2/opencv.hpp>
|
#include <opencv2/opencv.hpp>
|
||||||
# include<iostream>
|
#include <iostream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace cv;
|
using namespace cv;
|
||||||
@@ -13,18 +13,20 @@ int main()
|
|||||||
Mat img1 = imread(path1);
|
Mat img1 = imread(path1);
|
||||||
Mat img2 = imread(path2);
|
Mat img2 = imread(path2);
|
||||||
|
|
||||||
if (img1.empty() || img2.empty()) {
|
if (img1.empty() || img2.empty())
|
||||||
|
{
|
||||||
cout << "无法读取图片,请检查路径!" << endl;
|
cout << "无法读取图片,请检查路径!" << endl;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (img1.size() != img2.size()) {
|
if (img1.size() != img2.size())
|
||||||
|
{
|
||||||
cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
|
cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
|
||||||
// 将 img2 缩放到与 img1 相同的尺寸
|
// 将 img2 缩放到与 img1 相同的尺寸
|
||||||
resize(img2, img2, img1.size());
|
resize(img2, img2, img1.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat result ;
|
Mat result;
|
||||||
add(img1, img2, result);
|
add(img1, img2, result);
|
||||||
|
|
||||||
imshow("Original Image 1", img1);
|
imshow("Original Image 1", img1);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// 减法,与加法基本一样,只把add改成了subtract.
|
// 减法,与加法基本一样,只把add改成了subtract.
|
||||||
# include<opencv2/opencv.hpp>
|
#include <opencv2/opencv.hpp>
|
||||||
# include<iostream>
|
#include <iostream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace cv;
|
using namespace cv;
|
||||||
@@ -13,18 +13,20 @@ int main()
|
|||||||
Mat img1 = imread(path1);
|
Mat img1 = imread(path1);
|
||||||
Mat img2 = imread(path2);
|
Mat img2 = imread(path2);
|
||||||
|
|
||||||
if (img1.empty() || img2.empty()) {
|
if (img1.empty() || img2.empty())
|
||||||
|
{
|
||||||
cout << "无法读取图片,请检查路径!" << endl;
|
cout << "无法读取图片,请检查路径!" << endl;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (img1.size() != img2.size()) {
|
if (img1.size() != img2.size())
|
||||||
|
{
|
||||||
cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
|
cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
|
||||||
// 将 img2 缩放到与 img1 相同的尺寸
|
// 将 img2 缩放到与 img1 相同的尺寸
|
||||||
resize(img2, img2, img1.size());
|
resize(img2, img2, img1.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat result ;
|
Mat result;
|
||||||
subtract(img1, img2, result);
|
subtract(img1, img2, result);
|
||||||
|
|
||||||
imshow("Original Image 1", img1);
|
imshow("Original Image 1", img1);
|
||||||
|
|||||||
Reference in New Issue
Block a user