一、原理
将不感兴趣区域像素值置为0,感兴趣区域像素值不变。
方法:使用查找表将感兴趣区域置为1,感兴趣区域像素值置为0。然后与原图相乘。
二、代码实现
代码如下(示例):
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>
#include<cmath>
using namespace cv;
using namespace std;
int main(int argc, char* argv)
{
Mat src = imread("1000.jpg",IMREAD_GRAYSCALE);
if (!src.data)
{
cout << "图像为空" << endl;
return -1;
}
Mat lut(Size(1,256),CV_8UC1);
uchar* p = lut.ptr();
for (int i = 0; i < 256; i++)
{
if (i<100)
p[i] = 0;
else
p[i] = 1;
}
Mat src_bin;
LUT(src,lut, src_bin);
Mat reduce;
multiply(src,src_bin, reduce);
imshow("reduce", reduce);
waitKey();
}