C#中的黑白图像处理

问题描述 投票:2回答:12

alt text (来源:googlepages.com

在上面的图像中,我想用红色标记Circle的边缘

alt text (来源:googlepages.com

我不知道该怎么办,任何帮助/建议都会受到高度赞赏......

c# image-processing image-manipulation
12个回答
3
投票

只要您使用二进制图像(如您提供的二进制图像),形态过滤就会很好。扩大图像然后减去原始图像。

alt text http://img29.imageshack.us/img29/1420/morphf.png

这是一个MATLAB示例:

lImage = zeros(19, 19, 3);
lImage(7:13, 7:13, :) = repmat( ...
    [0 0 1 1 1 0 0; ...
     0 1 1 1 1 1 0; ...
     1 1 1 1 1 1 1; ...
     1 1 1 1 1 1 1; ...
     1 1 1 1 1 1 1; ...
     0 1 1 1 1 1 0; ...
     0 0 1 1 1 0 0;], [1 1 3]);
figure; imshow(lImage);
lOutline = imdilate(lImage, strel('disk', 1)) - lImage;
lOutline(:, :, 2:3) = 0;
figure; imshow(lImage + lOutline);

0
投票

最终你想要编辑图像的像素。 Marc Gravell已经在这里回答了这个问题。

然后,根据您选择的选项LockBits或GetPixel / SetPixel,您需要循环查看每像素颜色值。保持循环直到你碰到一个白色像素。

完成后,检查周围的所有方向,如果找到黑色像素,则将该白色像素的颜色设置为红色。这当然是最简单的答案,并且有一些方法可以优化它,但它会起作用。

例如,如果您想将颜色更改为仅限于四个直接相邻的像素,则可以,而不是检查对角线。


0
投票

边缘检测?图像处理? OpenCV! lib有C#包装器。不是“简单”的解决方案,但是使用此lib获得的任何exp都是一个很好的简历构建器。如果你的公司正在进行图像处理,他们可能已经在使用它。


-1
投票

我认为你的问题的答案就是答案

http://csharpkodu.blogspot.com.tr/2014/04/grafik-snfna-devam.html


4
投票

快速而肮脏的解决方逐个像素地运行图像,如果颜色发生变化,只需将像素涂成红色即可。

PS:注意这可能不适用于正方形,除非你在垂直和水平方向上做同样的事情


2
投票

你几乎肯定想要使用Canny Edge Detector,它应该能够很容易地做到这一点。 My company的产品系列包括这样一个工具,这是运行它的输出:alt text http://www.plinth.org/_images/image1Output.gif


1
投票

我想你需要一个边缘检测算法。试试thisthis


0
投票

您正在寻找的是边缘检测。您可以在Google上找到适用于常规算法的大量资源:

http://www.google.com/search?q=edge+detection+.net


0
投票

我至少可以指向一些漂亮的边缘检测滤波器:http://www.codeproject.com/KB/GDI-plus/edge_detection.aspx

我想它应该适合你


0
投票

从来没有做过这样的事情,但是复杂图像处理的强大工具是:

http://www.imagemagick.org/script/index.php

大量文档和示例 - 如果您不想调用可执行文件,还需要.NET包装器。


0
投票

有趣的问题 - 我假设你的例子中的'白色圆圈'实际上是另一个图像 - 这意味着你不是自己画圆圈的?

如果是这样,您可以扫描所有像素以找到至少在其一侧具有黑色的白色像素(4个方向或8个包括角)。如果匹配则将其交换为红色。如果没有,那么忽略它。

我怀疑这是最好的方法,但如果它只是黑色和白色,这可能会让你开始。


0
投票

这有几种方法。

第一个是: - 你知道有一个圆圈,你需要找到中心的位置和半径。所以你可以使用Hough transformation来找到这些,然后用红色绘制你的圆圈。阅读this topicthis one

第二是使用边缘检测。 Hereherehere更多的理论观点)

© www.soinside.com 2019 - 2024. All rights reserved.