opencv 用cvPryMeanShiftFiltering做图像分割,想将分块后每个区域设置个标签 生成一个label的mat 怎么做
![](/statics/lw85/user_logo/60b5530e3b8a07e8e375e2393e1eea08aac59740.jpg)
最新问答
颂美装饰
刚好我写了类似的代,但是我用的是 pyrMeanShiftFiltering() 这个函数,可能会稍有些不同。我把我的整个函数放在下面,你自己看下:
void meanShiftSegmentation(cv::Mat &firstImage, cv::Mat &secondImage, cv::Mat &overlapSegmentsResults)
{
int imageHeight = firstImage.rows;
int imageWidth = firstImage.cols;
cv::Mat firstResults;
cv::pyrMeanShiftFiltering(firstImage, firstResults,10,10);
cv::Mat secondResults;
cv::pyrMeanShiftFiltering(secondImage, secondResults,10,10);
cv::Mat mask(imageHeight+2, imageWidth+2, CV_8UC1, cv::Scalar(0));
uchar* maskData = mask.data;
RNG rng=theRNG();
for (int i = 0 ; i < imageHeight ; i++)
{
for (int j = 0 ; j < imageWidth ; j++)
{
if (maskData[(i+1)*imageWidth + j+1] == 0)
{
Scalar newcolor(rng(255),rng(255),rng(255));
floodFill(firstResults,mask,Point(j,i),newcolor,0,Scalar::all(1),Scalar::all(1));
}
}
}
mask.setTo(0);
for (int i = 0 ; i < imageHeight ; i++)
{
for (int j = 0 ; j < imageWidth ; j++)
{
if (maskData[(i+1)*imageWidth + j+1] == 0)
{
Scalar newcolor(rng(255),rng(255),rng(255));
floodFill(secondResults,mask,Point(j,i),newcolor,0,Scalar::all(1),Scalar::all(1));
}
}
}
imwrite("E:\\firstMeanShift.png",firstResults);
imwrite("E:\\secondMeanShift.png",secondResults);
}浏览 348赞 74时间 2023-06-22
相关问答
-
opencv 用cvPryMeanShiftFiltering做图像分割,想将分块后每个区域设置个标签 生成一个label的mat 怎么做
-
如何将一个几何图形分割成几个全等图形论文
-
用spss中每个数据文件都可以做主成分分析吗?有什么区别
-
大脑皮层上的沟裂将整个大脑大致分成几个区域?
-
毕业论文续表怎么做 就是把一个超出一页的表的后部分加一个标题
-
想做一个毕业设计。
-
想要剪掉图片的一部分,用ps怎么做
-
我想做个杂志,请问做封面的话纸张要设置成多大?
-
公司要做个宣传册,大家帮我设计一下板块(分为几部分)
-
用matlab做了一个图形。
-
图像分割类的期刊投哪个大学的学报比较好
-
用eviews做一个多元回归分析。
-
我想用photoshop做一个杂志封面,怎样做
-
想做一个mv,使用多种视频合并生成的
-
INDESIGN 做刊物 每个图片 每段文字 都新建个图层吗
-
怎样用JAVA流来分割一个mp3文件代码
-
我要用PPT做一个关于<<黄金分割>>的研究性论文
-
用coreldraw做一个杂志封面怎么做?
-
毕业设计要分哪几个部分?要用电脑做吗?
-
你能帮我做一个论文的实证分析部分么?就是做一个计量模型