标签: edge-detection

在Python中从图像中获取水印掩码

给定一系列带水印的照片,我想隔离水印并生成蒙版。

我正在使用 Python 和 numpy。

我已将图片叠加在一起:

def compare_n_img(array_of_img_paths):

img_float_array = []

for path in array_of_img_paths:
    img_float_array.append(load_img_as_float(path))

additionF = sum(img_float_array)/len(img_float_array)

addition = additionF.astype('uint8')

return addition
Run Code Online (Sandbox Code Playgroud)

转换为灰度后,得到了这个合成图像

水印在该合成图中清晰可见。对于人类来说,很容易追踪。

我想要的结果是一个白色图像,水印的形状填充为黑色。因此,如果我用蒙版覆盖一张带水印的图像,水印将被完全覆盖。

我尝试在合成图像上使用边缘检测和阈值处理。但我一直无法找到一种方法来以编程方式隔离水印内容。更不用说创建透明蒙版了。

如果可能的话,我想在纯 numpy 或 cv2 中执行此操作。

python opencv watermark numpy edge-detection

4
推荐指数
1
解决办法
1178
查看次数

opencv - 从canny计算非方向性边缘

任何人都可以帮助我如何使用opencv cannyedge检测计算非定向边缘的数量?我有一个来自opencv的cannyEdge图像,我希望有一个基于边缘方向的直方图,我可以计算它的方向和非方向边数.

opencv edge-detection

3
推荐指数
1
解决办法
9292
查看次数

Matlab中的图像变形

我想在MATLAB中使用数学形态学函数来找到can.png图像的边界.输入图像是:

在此输入图像描述

我想得到一个边界,如:

在此输入图像描述

我尝试使用不同的组合和参数使用strel,imerode,imdilate,但结果不够好(远远超出预期)

我的一个试用代码是:

a = imread ('can.png');
b = im2bw(a);

SE = strel('rectangle', [10 50 ]) ;
i2 = imdilate(b,SE);

figure(1); imshow(i2);

p = ones(4);
c = b - imerode(b,p);

figure(2); imshow(c);
Run Code Online (Sandbox Code Playgroud)

输出是:

在此输入图像描述

任何身体可以帮助我,如何创建预期的图像(罐头的边界很薄的黑色背景,拜托?非常感谢你.

matlab image-processing edge-detection

3
推荐指数
1
解决办法
3627
查看次数

对象(汽车)检测和分割

我试图从仅包含一辆车和简单背景的图像中分割汽车
在此输入图像描述


在此输入图像描述


但我从实施中得到的是这个
在此输入图像描述



在此输入图像描述


分别

但它很容易在几乎已经分段的图像上工作. 在此输入图像描述


给出结果如
在此输入图像描述


我正在使用的准则是

import cv2
import numpy as np

THRESH_TYPE=cv2.THRESH_BINARY_INV

def show(name,obj):
    cv2.imshow(name,obj)
    cv2.moveWindow(name, 100, 100) 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

def process_end(new):
    drawing = np.zeros(o.shape,np.uint8)     # Image to draw the contours
    contours,hierarchy =cv2.findContours(new,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)#find connected borders
    for cnt in contours:
        color = np.random.randint(0,255,(3)).tolist()  # Select a random color
        cv2.drawContours(drawing,[cnt],0,color,2)
    print "processing done"
    return drawing

def process(name,path):
    global o
    print "Started!!! processing "+name
    ratio=1#change according to image size
    o=cv2.imread(path+name)#open image
    print type(o)
    show("original",o)
    w,h=o.shape[1]/ratio,o.shape[0]/ratio#resize ratio for width and height
    new=cv2.resize(o,(w,h))#resize …
Run Code Online (Sandbox Code Playgroud)

matlab opencv image-processing edge-detection image-segmentation

3
推荐指数
1
解决办法
5705
查看次数

更准确的houghline OpenCV

我一直在使用OpenCV中的houghlines,我似乎无法获得更准确的行读取,有时候有两条重复的行在彼此之上.我查看了opencv网站上的教程,但它给出了类似的结果.

c++ opencv edge-detection

3
推荐指数
1
解决办法
2741
查看次数

使用OpenCV在小而嘈杂的图像上进行特征检测

我有一个非常嘈杂的图像,小(相关部分是381×314),功能非常微妙.

相关领域

源图像和裁剪的相关区域也在这里:http://imgur.com/a/O8Zc2

任务是使用Python计算相关区域内的白点数,但我很高兴只是隔离区域内较亮的点和线并删除背景结构(在这种情况下是单元格).

使用OpenCV我尝试过直方图均衡(破坏细节),找到轮廓(不起作用),使用颜色范围(颜色太近了?)

有关其他事情的任何建议或指导可以尝试吗?我不相信我可以得到更高的res图像,所以这个任务可能与相当困难的来源?

opencv image-processing image-recognition edge-detection noise-reduction

3
推荐指数
1
解决办法
1528
查看次数

切割图像后如何消除边缘边界的误差?

我正在制作一个具有6步算法的图像处理项目,我陷入其中之一.

首先,我使用的平台是MATLAB,所以如果你能提供一些样品,它会很棒.但如果您不想编写代码示例,请给我一些提示,技巧等.

让我解释一下我的问题.我已经对.jpg图像进行了细分,并删除了一些区域.然后我使用掩码将结果保存为.png.结果是这样的(黑色部分实际上是透明的,我把它变成黑色以便更好地看到问题);

在此输入图像描述

正如您在图片中看到的,有一些不相关的区域.我需要摆脱这些无关紧要的领域.因为我希望前景尽可能顺畅.乍一看,我将高斯模糊应用于蒙版并再次将图像保存为.png.但结果并不像你想象的那样令人满意.我认为这种情况需要比我尝试过的更可靠的解决方案.

编辑1:我使用光谱消光.但它没有帮助.我能收到的最好结果就是这样;

在此输入图像描述

正如你所看到的那样,脸上有一些问题,而且图片的底部有很多问题.我想我上面的第一张图片需要一种边缘修复器或边缘平滑器,它应该比消光更快.

任何MATLAB代码示例,技术和方法都会很棒.如果您需要进一步解释,请随时提出.

matlab smooth image-processing edge-detection image-segmentation

3
推荐指数
1
解决办法
295
查看次数

在图像中查找边(矩形边框)

我在背景上有一张粘滞便笺的图像(比如一堵墙或一台笔记本电脑),我想要检测粘滞便笺的边缘(粗略检测也可以正常工作),这样我就可以对其进行裁剪.

我计划使用ImageMagick进行实际裁剪,但我仍坚持检测边缘.

理想情况下,我的输出应该给我4个边界点的坐标,这样我就可以在它上面运行我的裁剪.

我该怎么办呢?

stickynote

python image-manipulation imagemagick edge-detection

3
推荐指数
1
解决办法
3207
查看次数

java图像处理sobel边缘检测

我有一个java程序的问题,我正在使用sobel运算符进行边缘检测,但是当我尝试使用该函数时,控制台说:

线程"AWT-EventQueue-0"中的异常java.lang.ArrayIndexOutOfBoundsException:262144 at the Obrasek.jButtonSobelActionPerformed的sun.awt.image.ByteInterleavedRaster.getPixels(ByteInterleavedRaster.java:1015)(Obrazek.java:566)

而代码是:

FileInputStream inFile = null;   
        try {
            long beginTime = (new java.util.Date()).getTime();
            int i, j;
            double Gx[][], Gy[][], G[][];
            inFile = new FileInputStream("D://lenacsmall.bmp");
            BufferedImage bi = ImageIO.read(inFile);
            int width = bi.getWidth();
            int height = bi.getHeight();
            int[] pixels = new int[width * height];
            int[][] output = new int[width][height];
            int[] raster = bi.getRaster().getPixels(0,0,width,height,pixels); 
           
            int counter = 0;
            for(i = 0 ; i < width ; i++ )
            {
                for(j = 0 ; j < height ; j++ …
Run Code Online (Sandbox Code Playgroud)

java image-processing edge-detection sobel

3
推荐指数
1
解决办法
5054
查看次数

python laplace过滤器返回错误的值

因为我需要在python中实现某种图像处理程序,所以我也想实现laplace过滤器。我使用矩阵
-1 -1 -1
-1 8 -1
-1 -1 -1

并实现了以下代码:

    for row in range(1, (len(self._dataIn) - 1)):
         for col in range(1, (len(self._dataIn[row])- 1)):
             value =  (- int(self._dataIn[row - 1][col -1][0])
                       - int(self._dataIn[row - 1][col][0])
                       - int(self._dataIn[row - 1][col + 1][0])
                       - int(self._dataIn[row][col -1][0]) + 
                       (8 * int(self._dataIn[row][col][0]))
                       - int(self._dataIn[row][col +1][0])
                       - int(self._dataIn[row + 1][col -1][0])
                       - int(self._dataIn[row + 1][col][0])
                       - int(self._dataIn[row + 1][col +1][0]))
             self._dataIn[row][col][0] = np.minimum(255, np.maximum(0, value))
             self._dataIn[row][col][1] = np.minimum(255, np.maximum(0, value))
             self._dataIn[row][col][2] = np.minimum(255, np.maximum(0, value)) …
Run Code Online (Sandbox Code Playgroud)

python image filter edge-detection python-imaging-library

3
推荐指数
1
解决办法
1379
查看次数