最近在开发抠图项目,有个同事想抠除一种颜色,这个用opencv就很简单了,我用的opencv3,正好有foreach可以用,😁
待抠图片如下:
他想去掉黑色(0,0,0)背景,于是代码如下:
#include
#include
#include
using namespace cv;
using namespace std;
const int color_drop = 0;
struct ForEachOperator {
void operator ()(cv::Vec4b &pixel, const int *position) const {
if (pixel[0] == color_drop && pixel[1] == color_drop && pixel[2] == color_drop)
pixel[3] = 0;
}
};
int main() {
string path_src("/Users/jijun/Downloads/xi.png");
string path_dest("/Users/jijun/Downloads/xi_alpha.png")