- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做一些图像预处理,但有一个步骤我不确定最好的方法。
我有带有注释的有趣区域的 MRI 图像,我检测轮廓并裁剪图像:
我将在此处发布我的代码,以便您了解我如何完成前面的步骤以及我们拥有的数据
lower_orange = np.array([0, 80, 50],np.uint8)
upper_orange = np.array([255, 255, 255],np.uint8)
for frame in frames:
cv2.imshow('Original frame',frame)
cv2.waitKey(0)
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
contour = cv2.inRange(hsv, lower_orange, upper_orange)
x,y,w,h = cv2.boundingRect(contour)
mask_inv = cv2.bitwise_not(contour)
frame = cv2.bitwise_and(hsv,hsv,mask = mask_inv)
cv2.imshow('Contoured frame',frame)
cv2.waitKey(0)
croped = frame[y:y+h,x:x+w]
resized = cv2.resize(croped,(240,240))
gray = resized[:,:,2]
cv2.imshow('Grayscale frame',gray)
cv2.waitKey(0)
feature.append(gray)
我现在要做的是将轮廓外的所有内容涂黑:
最佳答案
如Yunus Temuerlenkl在评论中告诉我。
此方法的精度取决于轮廓掩码的精度 .
尽管它是一种迭代方法,但对我来说并没有增加太多的处理时间。你可以做的一件事是并行处理您的图像/帧 .
for idx, frame in enumerate(frames):
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
contour = cv2.inRange(hsv, lower_orange, upper_orange)
x,y,w,h = cv2.boundingRect(contour)
croped_img = frame[y:y+h,x:x+w]
croped_mask = contour[y:y+h,x:x+w]
resized_gray_img = cv2.resize(croped_img,(dim,dim))[:,:,2]
resized_mask = cv2.resize(croped_mask,(dim,dim))
for row in range(dim):
i = 0
is_contour = False
while((i < dim) & (not is_contour)):
if(resized_mask[row,i]):
is_contour = True
resized_gray_img[row,i] = 0
i+=1
if not is_contour: continue
is_contour = False
i = dim -1
while((i >= 0) & (not is_contour)):
if(resized_mask[row,i]):
is_contour = True
resized_gray_img[row,i] = 0
i-=1
mask_inv = cv2.bitwise_not(resized_mask)
img = cv2.bitwise_and(resized_gray_img,resized_gray_img,mask = mask_inv)
feature.append(img)
关于图像预处理 : contour expansion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63087068/
我想找到图像的轮廓,然后绘制它的凸包。我正在做的是加载图像、对它进行阈值处理、找到它的轮廓,然后绘制凸包。 gray = cv2.imread(test_paths[i], 0) ret, thres
我是 OpenCV 的新手,我正在尝试在特定轮廓内绘制外部轮廓。这是我用来澄清的图像(已经灰度化、阈值化等) 我想要的是找到外矩形内的所有圆圈(总共 120 个)的轮廓。 contours = cv
我试图在包含2个轮廓的图像中找到最大的轮廓,但其中一个不是闭合线。等高线是从图像的边缘切出的。另一个靠近并组成一个区域。 roi_cnts = sorted(roi_cnts, key = cv2.c
这是虚拟更衣室的代码 因此,基本上是为了运行此代码ubuntu 12.04,python 2.7.3,gtk2和opencv 2。它删除背景屏幕,在几乎任何光线条件下检测T恤,替换T恤颜色。编写用于替
我在创建轮廓时遇到问题。 我有一个 STL 文件,STL 文件包含许多面,通过将面与切割平面相交(Z=dz,x=y=0),我们在每个增量处都有一个线数组Z. 但是线条没有顺序。我想对它们进行排序和连接
我想绘制这个用 fill.contour() 创建的图形,但是在 ggplot2 中,我该怎么做呢? 我想使用 ggplot2 因为图形约定更容易。我想使用 fill.contour() 的原因是因为
我想做一些图像预处理,但有一个步骤我不确定最好的方法。 我有带有注释的有趣区域的 MRI 图像,我检测轮廓并裁剪图像: 我将在此处发布我的代码,以便您了解我如何完成前面的步骤以及我们拥有的数据 low
我正在尝试找到一种方法来确定轮廓是否闭合, 但我使用的是 findContours 而不是 cvFindContours,所以我没有标志.. 知道怎么做吗? 顺便说一句,我被要求找出轮廓中的循环数,
我正在尝试使用 Contour 检测图像的第二个极值点。 我正在尝试像下面那样做。 我正在寻找图像的所有轮廓。 对等高线 NumPy 数组排序 删除 Numpy 数组中的最后一个元素以去除外部轮廓,以
我最近开始使用 openCV 和 python。我有一个项目,我正在使用 findContours 查找等高线。我得到大约 6-8 个轮廓,我在这些轮廓上循环以获得适合轮廓的边界框。 为此,我使用了
正如标题所示,这是一个非常简单的问题。 我查看了数据库和文件系统,但找不到 Contour 存储已创建表单的位置。 请注意,我指的是无需导出即可获得表单的完整图片。哪里可以“看到”Contour的“数
我正在使用 UmbracoCMS 和 Contour_1.1.12 在创建多步骤表单时,我需要根据用户在上一步中提供的某些字段值动态决定下一步中哪个表单可见。 例如,在轮廓多步表单中,有一个步骤是用户
我的代码在 OpenCV 中运行良好,直到我想找到等高线: findContours(src, contours,hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SI
这是我的第一个问题,感谢您阅读。 我正在尝试计算轮廓内的内部轮廓的数量。 我找到了一个很好的教程,展示了如何使用 h_next 和 v_next http://jmpelletier.com/a-si
谁能告诉我如何使用 POVRay 纹理执行以下操作... //PseudoCode texture { pigment { if(y mod 5 == 0) {
我正在使用 filled.contour绘制等高线图的函数。我想用深色表示最佳值周围的区域,用浅色表示所有其他区域。 library(gplots) a <- expand.grid(1:20, 1:
以下代码不起作用。它应该绘制一个“轮廓”图: var size = 100, x = new Array(size), y = new
基于这个问题,How to plot a function ax^2+bxy+cy^2+d=0 in Python? .我引用了@Michael Szczesny 的回答中的代码: import ma
基于这个问题,How to plot a function ax^2+bxy+cy^2+d=0 in Python? .我引用了@Michael Szczesny 的回答中的代码: import ma
我必须使用 opencv 对整个人体(从脚到头,以举手等多种姿势)进行轮廓检测。我设法编译并运行了在这里找到的代码 https://gist.github.com/yoggy/1470956 , 但它
我是一名优秀的程序员,十分优秀!