Python 如何从彩色地图中提取土地?
从这张游戏地图中提取土地时遇到了麻烦Python 如何从彩色地图中提取土地?,python,opencv,image-processing,Python,Opencv,Image Processing,从这张游戏地图中提取土地时遇到了麻烦 答案实际上是8张图片,代表这个大陆的国家。这个地图(大陆)实际上是一个更大的游戏地图的一部分,我已经把它分解成了几个图像。它们每一个都代表着一个不同颜色的大陆 我尝试了HSV分割、阈值和分水岭算法,但效果并不理想。图像仍然嘈杂,陆地区域被切断 有人能提出其他的方法吗?谢谢。这个问题很有挑战性。我提出了一种简单的方法,但它只提供了一个粗略的近似值 将rgb图像转换为灰度 应用阈值获得黑白图像 填充孔(无法从外部到达的背景像素) 标记区域并过滤区域低于阈值的区
答案实际上是8张图片,代表这个大陆的国家。这个地图(大陆)实际上是一个更大的游戏地图的一部分,我已经把它分解成了几个图像。它们每一个都代表着一个不同颜色的大陆 我尝试了HSV分割、阈值和分水岭算法,但效果并不理想。图像仍然嘈杂,陆地区域被切断
有人能提出其他的方法吗?谢谢。这个问题很有挑战性。我提出了一种简单的方法,但它只提供了一个粗略的近似值
im = imread('FyrNE.jpg');
I = rgb2gray(im);
[L, n] = bwlabel(bwareafilt(I>160,[1e2,Inf]));
imagesc(imfill(L, 'holes'))
这是12个检测到的国家的结果,这仍然是次优的
您真正想做的是,要么使用更奇特的算法检测特定长度的平滑曲线(边界曲线),要么,如果不需要重复执行任务,则使用可分辨颜色(例如红色)手动重新绘制边界,然后从那里开始。而不是分割黄色,你应该试着分割黑色和反转面具。这并不简单。如果你不需要在数百张图片上做这件事,我会考虑重新绘制一些图像上的边界(例如红色),这些颜色还不存在于图像上,并从那里起作用。你基本上需要区分的是地图上的边界线和其他装饰。然而,这是一个非常好的问题。谢谢你发帖。答案是什么?这是一个所有黑色现在都是透明的图像吗?或者是12张图片,每张图片中有一个国家?还有别的吗?答案实际上是8张图片,代表这个大陆的国家。这个地图(大陆)实际上是一个更大的游戏地图的一部分,我已经把它分解成了几个图像。它们每一个都代表着一个不同颜色的大陆。“我尝试了HSV分割、阈值和分水岭算法,但都没有达到最佳效果。”与其说你做了什么,不如展示你做了什么。也就是说,发布您的代码。展示为什么它不做你想让它做的事。如果你这样做,你会得到更多有用的答案。看见