我想检测边缘的图像:点击这里通过在程序中找到精明的边缘绘制的边缘:点击这里我正在使用带有处理的opencv库,这样我就可以执行边缘检测,以便将我的图像分割成不同的对象/组件。我已经能够使用精明的边缘检测来实现这一点。这给了我第二张黑色背景的图像,灰色线条表示检测到边缘的位置。然而,我需要能够将这张带有边缘的黑色图像分割成可识别的区域/对象,程序将理解为不同的区域/对象——我在想是否可以为每个由边缘限定的区域分配一种独特的颜色。然后我将能够循环通过整个图像的像素阵列,并根据其独特的颜色对每个区域进行不同的处理。
然而,我的问题是,我不知道如何进行处理,为每个以边为边界的区域指定唯一的颜色。我尝试了无数种方法来使用for循环,这样它就可以找到并分配不同的区域,但无论我尝试了什么,它都不起作用。想知道有没有人有什么解决办法?以下是代码:
import gab.opencv.*;
import processing.video.*;
OpenCV opencv;
Capture src;
PImage canny, ref, comb, comb2, tiles;
color [] combColour = new color [0];
int c = 0;
int threshold = 20;
int a = 100;
int b = 100;
int x = 0;
int y = 0;
Boolean dir = true;
int ydirection = 1;
int xdirection = 1;
void setup(){
src = new Capture(this, 640, 480);
size(640, 480, P2D);
src.start();
ref = createImage(width/2, height/2, HSB);
tiles = loadImage("tiles2.png");
opencv = new OpenCV(this, tiles);
opencv.findCannyEdges(20, 75);
canny = opencv.getSnapshot();
}
void draw(){
updatePixels();
src.read();
loadPixels();
pushMatrix();
image(tiles, 0, 0, width/2, height/2);
opencv.loadImage(tiles);
opencv.findCannyEdges(20, 75);
canny = opencv.getSnapshot();
image(canny, 0, height/2, width/2, height/2);
if (c == 5){
comb = get(0, height/2, width/2, height/2);
comb2 = get(0, height/2, width/2, height/2);
}
if ( c >= 5){
comb.loadPixels();
int loc = x + y*comb.width;
color currentColor = comb.pixels[loc];
if (brightness(currentColor) < 10){
comb.pixels[loc] = color(hue(a), saturation(b), brightness(currentColor));
}
else if (brightness(currentColor) > 150){
comb.pixels[loc] = currentColor;
if ( a >= 235){
a = 0;
}
else{
a += 20;
}
if ( b >= 235){
b = 0;
}
else {
b += 20;
}
}
if (y >= comb.height -1){
x += 1;
y = 0;
println("one" + x);
}
else{
y += 1;
println("two" + y);
}
println("a " + a);
comb.updatePixels();
image(comb, width/2, height/2);
image(comb2, width/2, 0);
}
popMatrix();
updatePixels();
c += 1;
}
我可能回答这个问题晚了,但也许你可以尝试使用霍夫概率变换,http://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html.一旦你可以对线条进行排序,你就可以用你想要的独特颜色填充它们。我想你上传的图像不应该有任何问题。让我知道它是如何工作的。
本文向大家介绍Python中使用OpenCV(CV2)对图像进行边缘检测,包括了Python中使用OpenCV(CV2)对图像进行边缘检测的使用技巧和注意事项,需要的朋友参考一下 使用的模块: 为此,我们将使用opencv-python模块,该模块为我们提供了处理图像的各种功能。 下载opencv-python opencv-python模块: opencv-python是一个python库,它将
Canny边缘检测用于检测图像中的边缘。 它接受灰度图像作为输入,并使用多级算法。可以使用类的方法在图像上执行此操作,以下是此方法的语法。 该方法接受以下参数 - image - 表示此操作的源(输入图像)的对象。 edges - 表示此操作的目标(边缘)的对象。 threshold1 - 类型为的变量表示滞后过程的第一个阈值。 threshold2 - 类型为的变量表示滞后过程的第二个阈值。 示
我正试图从彩色背景图像中提取文本。我正在尝试的一种方法是边缘检测。用它我把原始图像转换成我可以处理的图像。这将消除图像中的所有颜色,只留下边缘。 我使用此代码获取边缘图像 我的问题是,在我得到这些图像后,我如何才能追踪这些图像中的字母?任何帮助都会很好。谢谢你们 这些是原始图像和边缘检测图像。 原始图像 边缘检测图像
本文向大家介绍C#图像处理之边缘检测(Smoothed)的方法,包括了C#图像处理之边缘检测(Smoothed)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#图像处理之边缘检测(Smoothed)的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#图像处理之边缘检测(Sobel)的方法,包括了C#图像处理之边缘检测(Sobel)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#图像处理之边缘检测(Sobel)的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#图像边缘检测(Roberts)的方法,包括了C#图像边缘检测(Roberts)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#图像边缘检测(Roberts)的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。