小编J. *_*ndo的帖子

OpenCV中的快速颜色量化

如何以最快的方式使用OpenCV(+ C++)减少图像中不同颜色的数量?我不想要完整的代码.我已经使用kmeans做了它,但它不是很快.这是我的代码的一部分很慢:

kmeans(samples, clusterCount, labels,
    TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 10, 10.0),
    1, KMEANS_RANDOM_CENTERS, centers);
Run Code Online (Sandbox Code Playgroud)

这段代码需要几秒钟来处理,这对我来说非常慢.我正在使用Matlab这个(rgb2ind)很快.差不多0.01秒.

我希望将我的代码用于生产,用户希望程序能够快速生成.

有没有替代kmeans颜色量化?有没有办法更快地运行kmeans(我不这么认为,因为我尝试了很多不同的参数)?

编辑:
变成颜色量化是一个非常复杂的主题,需要时间来编写一个优秀的优化.我决定用Magick++ (ImageMagick API)它.
因此我没有尝试过Cris Luengo的新(编辑)答案.但我将其标记为答案(也请查看评论),以便其他人不认为这个问题没有得到解答.

c++ matlab opencv image-processing

10
推荐指数
2
解决办法
4189
查看次数

将包含向量和cv :: Mat的结构存储到磁盘-C ++中的数据序列化

我想将下面的结构存储在磁盘中,并能够再次读取它:(C ++)

struct pixels {
    std::vector<cv::Point> indexes;
    cv::Mat values;
};
Run Code Online (Sandbox Code Playgroud)

我尝试使用ofstreamifstream但是它们需要变量的大小,在这种情况下我真的不知道该如何计算。这不是具有一些int和double的简单结构。有什么办法可以用C ++做到这一点,最好不要使用任何第三方库。

(我实际上是来自该Matlab语言。使用save:可以很容易地用该语言进行操作save(filename, variables)。)

编辑:
我刚刚尝试了Boost序列化。不幸的是,我使用它的速度很慢。

c++ serialization struct opencv

3
推荐指数
1
解决办法
680
查看次数

标签 统计

c++ ×2

opencv ×2

image-processing ×1

matlab ×1

serialization ×1

struct ×1