标签: image-processing

将OpenCV图像转换为黑白图像

如何将灰度OpenCV图像转换为黑白图像?我看到一个类似的问题已经被问过了,但是我正在使用OpenCV 2.3,而且建议的解决方案似乎不再适用.

我正在尝试将灰度图像转换为黑白图像,因此任何非绝对黑色的图像都是白色,并将其用作surf.detect()的遮罩,以便忽略在黑色遮罩区域边缘找到的关键点.

以下Python几乎让我,但发送到Threshold()的阈值似乎没有任何影响.如果我将其设置为0或16或128或255,结果是相同的,所有值> 128的像素变为白色,其他所有像素变为黑色.

我究竟做错了什么?

import cv, cv2
fn = 'myfile.jpg'
im_gray = cv2.imread(fn, cv.CV_LOAD_IMAGE_GRAYSCALE)
im_gray_mat = cv.fromarray(im_gray)
im_bw = cv.CreateImage(cv.GetSize(im_gray_mat), cv.IPL_DEPTH_8U, 1);
im_bw_mat = cv.GetMat(im_bw)
threshold = 0 # 128#255# HAS NO EFFECT!?!?
cv.Threshold(im_gray_mat, im_bw_mat, threshold, 255, cv.CV_THRESH_BINARY | cv.CV_THRESH_OTSU);
cv2.imshow('', np.asarray(im_bw_mat))
cv2.waitKey()
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing computer-vision

45
推荐指数
5
解决办法
13万
查看次数

module'对象没有属性'drawMatches'opencv python

我只是在OpenCV中做一个特征检测的例子.此示例如下所示.它给了我以下错误

module'对象没有属性'drawMatches'

我检查了OpenCV Docs,我不确定为什么会收到此错误.有谁知道为什么?

import numpy as np
import cv2
import matplotlib.pyplot as plt

img1 = cv2.imread('box.png',0)          # queryImage
img2 = cv2.imread('box_in_scene.png',0) # trainImage

# Initiate SIFT detector
orb = cv2.ORB()

# find the keypoints and descriptors with SIFT
kp1, des1 = orb.detectAndCompute(img1,None)
kp2, des2 = orb.detectAndCompute(img2,None)

# create BFMatcher object
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)

# Match descriptors.
matches = bf.match(des1,des2)

# Draw first 10 matches.
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2)

plt.imshow(img3),plt.show()
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
File "match.py", line …
Run Code Online (Sandbox Code Playgroud)

python opencv image image-processing computer-vision

45
推荐指数
3
解决办法
4万
查看次数

解释霍夫变换

我只是喜欢冒险,迈出了我的第一步,迈向计算机视觉.我试图自己实现霍夫变换,但我只是没有全面了解.我阅读了维基百科条目,甚至是原始的"使用霍夫变换检测图片中的线条和曲线",由理查德·杜达和彼得·哈特,但没有帮助.

有人可以帮助用更友好的语言向我解释吗?

geometry pattern-recognition image-processing computer-vision hough-transform

44
推荐指数
3
解决办法
2万
查看次数

检测图像上的硬币(和拟合椭圆)

我目前正在开展一个项目,我正试图检测一些平躺在平面上的硬币(即桌子).硬币不重叠,不会被其他物体隐藏.但可能有其他物体可见,照明条件可能不完美...基本上考虑自己拍摄你的桌子上有一些硬币.

所以每个点都应该是椭圆形.由于我不知道相机的位置,椭圆的形状可能会有所不同,从圆圈(从顶部看)到扁平椭圆,取决于硬币拍摄的角度.

我的问题是,我不知道如何提取硬币,最后在它们上面放置椭圆(我正在寻找进一步的计算).

现在,我刚刚通过在OpenCV中设置阈值进行了第一次尝试,使用findContours()获取轮廓线并拟合椭圆.不幸的是,轮廓线很少给我硬币的形状(反射,光线不好......),这种方式也不是首选,因为我不希望用户设置任何阈值.

另一个想法是在该图像上使用椭圆的模板匹配方法,但由于我不知道相机的角度和椭圆的大小,我认为这不会很好...

所以我想问一下是否有人能告诉我一种方法可以解决我的问题......

有没有快速的方法从图像中提取三个硬币?计算应该在移动设备上实时进行,并且该方法对于不同或变化的灯光或背景的颜色不应过于敏感.

如果有人能给我任何关于哪种方法对我有用的提示,那会很棒...

opencv image image-processing image-recognition

44
推荐指数
3
解决办法
4万
查看次数

如何将模糊应用于UIView?

现在我正在构建一个需要模糊整个UIView的iPhone应用程序.我怎样才能做到这一点?我已经看到了这个框架,但我认为这不适用于UIView.是否有另一种模糊UIView的方法?

更新:检查下面我更新的答案,增加与iOS 7和iOS 8的更新相关性.

image-processing blur uiview ios

44
推荐指数
3
解决办法
5万
查看次数

用于检测点的"簇"的算法

我在这个区域有一个带有"点"的2D区域.我现在正试图检测点的"簇",即具有一定高密度点的区域.

有关如何优雅地检测这些区域的任何想法(或链接到有想法的文章)?

algorithm image-processing data-structures

43
推荐指数
6
解决办法
2万
查看次数

如何从BufferedImage获取InputStream?

如何从BufferedImage对象获取InputStream?我试过这个,但ImageIO.createImageInputStream()总是返回NULL

BufferedImage bigImage = GraphicsUtilities.createThumbnail(ImageIO.read(file), 300);
ImageInputStream bigInputStream = ImageIO.createImageInputStream(bigImage);
Run Code Online (Sandbox Code Playgroud)

因为我可以成功地将bigImage绘制JPanel,所以正确生成了图像缩略图.

谢谢.

java image-processing javax.imageio

43
推荐指数
3
解决办法
6万
查看次数

图像比较算法

我试图将图像相互比较,以确定它们是否不同.首先,我尝试对RGB值进行Pearson相关,除非图像是轻微的位移,否则它的效果也相当不错.因此,如果一个100%相同的图像,但一个有点移动,我得到一个不好的相关值.

有关更好算法的任何建议吗?

顺便说一下,我正在谈论比较数千个图片......

编辑:以下是我的照片示例(微观):

IM1:

在此输入图像描述

IM2:

在此输入图像描述

IM3:

在此输入图像描述

im1和im2是相同但有点移位/切割,im3应该被认为是完全不同的...

编辑: 问题是通过Peter Hansen的建议解决的!效果很好!感谢所有答案!一些结果可以在这里找到 http://labtools.ipk-gatersleben.de/image%20comparison/image%20comparision.pdf

python compare image image-processing computer-vision

43
推荐指数
4
解决办法
6万
查看次数

文件上传时的最大图像大小

我的形式有一个ImageField.我如何强制执行文件大小最小/最大,类似于 -

image = forms.ImageField(max_size = 2MB) 
Run Code Online (Sandbox Code Playgroud)

要么

image = forms.ImageField(min_size = 100k)
Run Code Online (Sandbox Code Playgroud)

谢谢.

django image-processing django-forms

43
推荐指数
3
解决办法
3万
查看次数

剪出文字形状的图像

我需要在另一个图像中剪切出文本形状的图像.我认为它最好显示在图像中.

这是一张猫的照片:

一只好的猫的照片

这是我要删除的文字:

文本切出猫照片

生成的图像是这样的:

导致猫照片的剪切

文本图像将始终为黑色并具有透明背景,并且生成的剪切图案也应具有透明背景.两个输入图像也将具有相同的大小.

java image image-processing

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