gpt4 book ai didi

c++ - 打开 CV 水彩滤镜。 (遍历图像的像素)

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:32 24 4
gpt4 key购买 nike

我正在尝试按照此伪代码在 Open CV 中实现水彩滤镜。 http://supercomputingblog.com/graphics/oil-painting-algorithm/

我以前在 javascript 中使用此方法和 Canvas 实现了效果,因为我可以遍历像素,但我不确定如何使用 Open CV 来实现。

Mat im = imread(...); //input image
Mat paint; // output after processing
for(int i = 0; i < im.rows; i++)
{
for (int j = 0; j < im.cols; j++) //for each pixel
{
//here I need a reference to the pixel colour from im
}
}

我尝试使用:

im.at<uchar>(i,j)

然而,这在很大程度上给我提供了大约 350 的值,这在我看来是 rgb channel 的累积(我认为是多 channel 阵列)。所以我试着像这样拆分它:

vector<Mat> three_channels;
split(im, three_channels);

但它只给了我 3 次相同的值。有什么建议吗?

最佳答案

我最终只是访问了它们,因此:

int r = im.at<cv::Vec3b>(y,x)[0];
int g = im.at<cv::Vec3b>(y,x)[1];
int b = im.at<cv::Vec3b>(y,x)[2];

如前一个问题的答案中所述。

关于c++ - 打开 CV 水彩滤镜。 (遍历图像的像素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com