【发布时间】:2018-02-16 15:03:56
【问题描述】:
如果我有类似的面具
我有一个图像(大小与面具相同),如
我想突出显示图像中的蒙版。如果我使用其他语言,我只是
如您所见,结果图像有一个透明红色显示蒙版。我希望在 OpenCV 中实现这一点。所以我写了这段代码
#include <opencv.hpp>
using namespace cv;
using namespace std;
int main() {
Mat srcImg = imread("image.jpg");
Mat mask = imread("mask.jpg", IMREAD_GRAYSCALE)>200;
for(int i=0;i<srcImg.rows;i++)
for(int j=0;j<srcImg.cols;j++)
if(mask.at<uchar>(i, j)==255)
circle(srcImg, Point(j,i), 3, Scalar(0, 0, 128,128));
imshow("image",srcImg);
waitKey();
return 0;
}
但是如你所见,我在Scalar 中使用了一个alpha 值,但它不是透明红色。
这可能是因为 srcImg 只有 3 个频道。我对此有两个问题
- 如何用透明红色高亮遮罩(即使图像只有 3 个通道)?
- 我必须逐个像素地绘制
circle才能做到这一点?
【问题讨论】:
标签: c++ opencv image-processing