如何删除与图像边框相邻的项目[关闭]
Posted
技术标签:
【中文标题】如何删除与图像边框相邻的项目[关闭]【英文标题】:How to remove items adjacent to border of image [closed] 【发布时间】:2014-07-22 21:20:23 【问题描述】:我有一个包含黑色背景上的白色核的二进制图像。 对于我的处理,我需要从图像中消除那些被边界部分剪裁的核。
下面是一张图片,对于这种情况,我想删除顶部边框的四个原子核和底部的四个原子核。如何使用 OpenCV 做到这一点?
我需要消除那些接触边界的细胞核。
【问题讨论】:
... 这很紧急!拜托!是认真的吗?如果它对你来说很紧急,这根本不重要。恕我直言,这对这里的大多数研究人员来说并不紧急:P ... 这个问题有很多问题,但我不确定为什么人们投票关闭,因为它太宽泛了。 对不起。不过还是谢谢你。 =] 【参考方案1】:扫描图像的边框,当您发现flood fill 带有黑色的白色像素时。
你会想要这样的:
uchar white(255);
// do top and bottom row
for(int y = 0; y < image.rows; y += image.rows-1)
uchar* row = image.ptr<uchar>(y)
for(int x = 0; x < image.cols; ++x)
if(row[x] == white)
cv::floodFill(image, cv::Point(x,y), cv::Scalar(0), (cv::Rect*)0, cv::Scalar(), cv::Scalar(200));
// fix left and right sides
for(int y = 0; y < image.rows; ++y)
row = image.ptr<uchar>(y)
for(int x = 0; x < image.cols; x += image.cols - 1)
if(row[x] == white)
cv::floodFill(image, cv::Point(x,y), cv::Scalar(0), (cv::Rect*)0, cv::Scalar(), cv::Scalar(200));
【讨论】:
以上是关于如何删除与图像边框相邻的项目[关闭]的主要内容,如果未能解决你的问题,请参考以下文章