小编use*_*339的帖子

如何以垂直角度在blob上采样线?(在Python/OpenCV中,除非你建议切换到别的东西)

我正在开发一个程序,它将跟踪二进制blob中心的点,类似于弯曲的五彩纸屑.稍后我将使用跟踪曲线的三次样条拟合这些点.

作为该计划的一部分,我需要:

- 创建一个2D矢量,对二进制图像中的斜线进行采样,

- 计算沿五彩纸屑斑点的每个位置使用的角度.

以下是图像的一些示例,以及跟踪的点可能如下所示的草图:

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

找到黑色五彩纸屑垂直部分的中心很简单.如果你是黑色像素,找到左右白色边缘,中间是这些之间的距离的一半.这样做很容易,因为用于进行上述计算的2d向量只是图像的一行.

这是一个五彩纸屑片的10像素高度片段

在此输入图像描述

但五彩纸屑并不总是直线和垂直排列!有时它们是弯曲的或水平对齐的.这里需要的是一个二维矢量,它以一定角度切割五彩纸屑的截面. 从图像中采样这个有角度的矢量的最有效方法是什么?实际上,在像Python PIL或OpenCV这样的图像处理库中,是否有可以通过图像获取角度矢量的操作?如果我制作一个,我怎么能注意确保它有效?

计算所需向量角度的最有效方法是什么? 获得适当角度的一种方法是找到导致返回的2d向量中的最小宽度黑色段的角度.我不需要做到这一点,只需要以30度的增量循环360度.获得合适角度的另一种方法可能是找到五彩纸屑曲线的切线,并使用与之垂直的线 - 但是可能会更复杂.

任何关于如何更好地解决问题的想法都会非常有帮助.关于如何在图像上获取2d线的任何具体建议,以及获得垂直角度的有效方法也将是很好的.

在此输入图像描述

python algorithm opencv computer-vision

7
推荐指数
1
解决办法
3459
查看次数

如何使用Python Image Library(PIL)确定多页TIFF的长度?

我知道PIL Image.seek()Image.tell()PIL的方法允许我去一个特定的帧,并分别列出当前帧.我想知道总共有多少帧.是否有获取此信息的功能?或者,在python中是否有一种方法可以创建循环并捕获在没有图像时发生的错误?

from PIL import Image
videopath = '/Volumes/USB20FD/test.tif'
print "Using PIL to open TIFF"
img = Image.open(videopath)
img.seek(0)  # .seek() method allows browsing multi-page TIFFs, starting with 0
im_sz = [img.tag[0x101][0], img.tag[0x100][0]] 
print "im_sz: ", im_sz
print "current frame: ", img.tell()
print img.size()
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我打开一个TIFF堆栈,并访问第一帧.我需要知道堆栈的"深度",因此如果不存在图像,我不会在下游计算中出现错误.

python tiff image-processing python-imaging-library

7
推荐指数
1
解决办法
2189
查看次数

是否有一个函数可以在给定对齐参数的情况下计算对齐序列的分数?

我尝试对已经对齐的序列进行评分.让我们说吧

seq1 = 'PAVKDLGAEG-ASDKGT--SHVVY----------TI-QLASTFE'
seq2 = 'PAVEDLGATG-ANDKGT--LYNIYARNTEGHPRSTV-QLGSTFE'
Run Code Online (Sandbox Code Playgroud)

给定参数

substitution matrix : blosum62
gap open penalty : -5
gap extension penalty : -1
Run Code Online (Sandbox Code Playgroud)

我确实浏览了biopython cookbook,但我能得到的是替换矩阵blogsum62,但我觉得必须有人已经实现了这种类型的库.

那么有人可以建议任何可以解决我的问题的库或最短的代码吗?

Thx提前

python bioinformatics biopython

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

如何从Matlab中的regionprops(Image,'BoundingBox')获取矩形子图像?

我有一些粒子,我已经在一个更大的图像中识别出来,需要为每个粒子解析成更小的图像.我已经使用了regionprops的"BoundingBox"函数,但还没有成功.我现在如何使用BoundingBox制作图像的矩形子图像?我可以使用BoundingBox在原始图像上绘制一个矩形,但BoundingBox返回的参数似乎不是像素尺寸(x,y,宽度,高度),(x1,y1,x2,y2)等,我期望一个边界框返回.我已经使用coins.png编写了一些示例代码,以方便任何人理解.你能帮帮我吗?谢谢!

figure(1);
I = imread('coins.png');
bw = im2bw(I, graythresh(I));
bw2 = imfill(bw,'holes');
imshow(bw2);


figure(2);
L = bwlabel(bw2);
imshow(label2rgb(L, @jet, [.7 .7 .7]))

figure(3);
imshow(I);
s = regionprops(L, 'BoundingBox');
rectangle('Position', s(1).BoundingBox);
Run Code Online (Sandbox Code Playgroud)

matlab image-processing bounding-box

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

d3.json:"未捕获的TypeError:无法读取未定义的属性'children'"

我正在尝试将d3作为表示生物数据的工具.

我试图在我的Chrome浏览器中打开以下示例,以便我可以理解它是如何工作的.不幸的是我得到以下错误"未捕获的TypeError:无法读取未定义的属性'子项'".

http://bl.ocks.org/4063550

如果单击该链接,则.html文件和.json文件的源代码将显示在可视化文件的输出下方.显然,可视化正在上面的页面上工作.我不确定我做错了什么.

我已将index.html文件和flare.json文件复制到Web服务器上的目录中.如果我试图从本地文件加载它我得到另一个错误:XMLHttpRequest无法加载file:/// C:/ Users /(..omitted ..)/ flare.json.仅支持HTTP的跨源请求.

确实可以从web服务器加载flare.json文件(我可以看到它的文本内容).它包含我试图绘制的树数据.

显然,flare.json文件的开头如下:

{ "name": "flare", "children": [ ...

不幸的是,d3.json在解析这些信息时遇到了麻烦......

如果有帮助,这是我尝试在Chrome中打开的.html文件:

<!DOCTYPE html>

<html>
<head>
    <title>heirarchical graph</title>


<meta charset="utf-8">
<style>

.node circle {
  fill: #fff;
  stroke: steelblue;
  stroke-width: 1.5px;
}

.node {
  font: 10px sans-serif;
}

.link {
  fill: none;
  stroke: #ccc;
  stroke-width: 1.5px;
}

</style>
    <script type="text/javascript"
            src="https://raw.github.com/mbostock/d3/master/d3.v2.min.js">
    </script>

    </head>
    <body>
    <script>

var diameter = 960;

var tree = d3.layout.tree()
    .size([360, diameter / 2 - 120])
    .separation(function(a, b) { return …
Run Code Online (Sandbox Code Playgroud)

html javascript json data-visualization d3.js

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

如何在我的Mac上使用sshfs挂载远程驱动器(BeagleBone)?

为什么我不能使用我的mac中的sshfs连接到我的BeagleBone?我可以ssh到这个IP地址就好了.我需要以某种方式创建一个特殊的挂载点吗?套接字没有连接是什么意思?

sudo sshfs root@192.168.7.1: /Volumes/
remote host has disconnected
mount_osxfusefs: failed to mount /Volumes@/dev/osxfuse0: Socket is not connected
Run Code Online (Sandbox Code Playgroud)

仅供参考我安装了sshfs brew cask sshfs

macos ssh fuse sshfs

5
推荐指数
1
解决办法
3593
查看次数

为什么我的d3数据输出后?

这是一个简单的页面,演示了d3的一些基本功能.我做了一个数据集var dataset = [3,1,4,1,5]; 并希望输出它以及一些段落.该数据显示,但之后的身体!奇怪......

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title> demo project</title>
    <script type="text/javascript" src="d3/d3.v2.js"></script>
</head>
<body>

    <script type="text/javascript">
        d3.select("body").append("p").text("hello!");
        d3.select("p").append("text").text(" hello!!");
        d3.select("body").append("p").text("hello2!");
        d3.select("p:nth-child(3)").append("text").text(" hello2!!");
        var dataset = [3,1,4,1,5];
        d3.select("p:nth-child(3n+1)")
            .data(dataset)
            .enter()
            .append("p")
            .text(function(d) { return d; });
        d3.select("p:nth-child(7n + 1)").append("text").text("hello againss?");
    </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

该页面如下所示:

在此输入图像描述

DOM看起来像这样(注意数据显示正文关闭标记之后):

在此输入图像描述

还要注意行d3.select("p:nth-​​child(7n + 1)").append("text").text("hello againss?"); 打算在我的所有数据之后打印,但它没有显示出来.

javascript css d3.js

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

在Python/OpenCV中有一种快速滚动视频帧的方法,允许用户选择要处理的开始和结束帧吗?

在准备处理视频时,我希望用户能够选择要在视频中处理的第一帧和最后一帧.轨迹栏似乎是一个有用的工具,但我可以使用它来读取和显示视频中的特定帧吗?

通常我会逐帧读取视频并使用while循环在其上运行我的处理算法:

cap = cv2.VideoCapture('myvideo.mp4')
while(cap.isOpened()):
    ret, frame = cap.read()
    # ....
Run Code Online (Sandbox Code Playgroud)

这不利于用户快速扫描视频以找到要处理的良好帧间隔.

轨迹栏非常适合设置图像处理参数,但如果有一个更好的工具,你可以考虑这个,请建议.您可以在下面看到一些使用轨迹栏设置阈值级别变量的代码.

def onTrackbarChange(trackbarValue):
    pass

cv2.createTrackbar( 'threshold level', 'mywindow', 100, 255, onTrackbarChange )

thresholdlevel = cv2.getTrackbarPos('thresh','mywindow')
Run Code Online (Sandbox Code Playgroud)

有没有办法做这样的事情?

start_frame = cv2.getTrackbarPos('start-frame','mywindow')
ret, frame = cap.read(start_frame) #don't think this is possible
cv2.imshow('window', frame)
Run Code Online (Sandbox Code Playgroud)

理想的情况下,将有两个窗板,一个与所述start_frame,和一个与所述stop_frame,各由一个的TrackBar控制.

python video user-interface opencv image-processing

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

在OpenCV中是否可以将局部曲率绘制为表示对象"点"的热图?

给定一个可以检测并绘制轮廓的斑点的阈值图像,是否可以在绘制轮廓时将局部曲率表示为热图?

即(1)是否可以确定开放的CV轮廓上的局部曲率(2)将该曲率映射到热图颜色空间(3)将轮廓绘制为热图.

我的目标是测量一个对象的"尖锐度",这样我就可以从尖端绘制一个向量到相反的非尖端.对于我的对象,我碰巧知道尖端的一面是顶部.

如果其他技术在表示"点"性方面比曲率更有效,可以随意提出.

在此输入图像描述

在此输入图像描述

在此输入图像描述

python opencv image-processing

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

如何从顶级目录之外运行 Flask 应用程序?

我正在使用 Amazon EC2 ubuntu 微实例完成 Miguel Grinberg 的 Flask Megatutorial(一个微博应用程序)。

目前,每次我想启动 Flask 应用程序时,我都必须cd进入顶级目录~/microblog/

然后,我输入: flask run -h 0.0.0.0 -p 50000启动应用程序。

有没有办法在命令行中指定目录,这样我就不必继续进入该目录来运行程序?似乎没有,但也许我错过了一些东西。我对linux也很陌生。

~/microblog$ flask run --help
 * Tip: There are .env or .flaskenv files present. Do "pip install python-dotenv" to use them.
Usage: flask run [OPTIONS]

  Run a local development server.

  This server is for development purposes only. It does not provide the
  stability, security, or performance of production WSGI servers.

  The reloader and debugger …
Run Code Online (Sandbox Code Playgroud)

linux flask

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