小编Lee*_*nde的帖子

识别所有共线线段(在matlab中)

我在这里发布了一个相关但不一样的问题/sf/ask/579578891/

背景:我有很多图片看起来像这样: 在此输入图像描述

我想识别所有共线的线段,然后测量这些线段的长度.在上图中,有3对段位于具有负斜率的假想线上.最长的线段没有一对因此不会被考虑,即必须至少有2个共线段.

我得到以下内容: 在此输入图像描述

I  = imread('http://dl.dropbox.com/u/18072545/c_39_green.tif'); 
BW = edge(I,'canny');
[H,T,R] = hough(BW);
NUMPEAKS=15;
PEAKTHRESHOLD= 80; 
SUPPRESSNHBR=[40 40];
P  = houghpeaks(H,NUMPEAKS,'threshold',PEAKTHRESHOLD,'NHoodSize',SUPPRESSNHBR); 
MINLENGTH_OF_SEGMENT=50;
GAPLENGTH_TO_MERGE=30;
lines = houghlines(BW,T,R,P,'FillGap',GAPLENGTH_TO_MERGE,'MinLength',MINLENGTH_OF_SEGMENT);
max_len = 0;
figure, imshow(I), hold on
for k = 1:length(lines)
  xy = [lines(k).point1; lines(k).point2];
  plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
  plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
  plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
end
Run Code Online (Sandbox Code Playgroud)

我不得不玩这些参数以获得合理的性能(尽管我无法找到一个参数来捕获位于底部的段的起始位).但是,我无法避免找到多个重叠的段.

有人可以帮助我1.防止识别重叠的部分.2.识别所有共线的线

非常感谢!

matlab image-processing line-segment

8
推荐指数
1
解决办法
2390
查看次数

从电泳凝胶图像测量加权平均长度

背景:

我的问题涉及从电泳凝胶中提取特征(见下文).在该凝胶中,从顶部装载DNA并使其在电压梯度下迁移.凝胶具有筛子,因此较小的分子比较长的分子迁移得更远,导致DNA长度分离.分子越高,它就越长.

题:

在该图像中,有9个泳道,每个泳道具有独立的DNA来源.我有兴趣测量每条车道的平均位置(y轴上的值).我对图像处理很陌生,但我知道MATLAB,我可以用R来解决这个问题.如果有人能告诉我如何找到每条车道的平均值,我真的很感激.

gel_image

matlab image-processing

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

如何将文件拆分为由关键字定义的块

假设我有一个大文本文件,例如:

variableStep chrom=chr1
sometext1
sometext1
sometext1
variableStep chrom=chr2
sometext2
variableStep chrom=chr3
sometext3
sometext3
sometext3
sometext3
Run Code Online (Sandbox Code Playgroud)

我想将此文件拆分为 3 个文件:文件 1 包含内容

sometext1
sometext1
sometext2
Run Code Online (Sandbox Code Playgroud)

文件 2 有内容

sometext2
Run Code Online (Sandbox Code Playgroud)

和文件 3 有内容

sometext3
sometext3
sometext3
sometext3
Run Code Online (Sandbox Code Playgroud)

请注意,“sometext1”、“sometext2”、“sometext3”都没有“variableStep”一词。

我可以在 python 中通过简单地迭代这些行并打开一个新的文件句柄并在每次我在行的开头遇到“variableStep”时将后续行写入它来做到这一点,但是,我想知道这是否可以在命令行。请注意,真实文件很大(多个 Gb,因此一次性读取所有内容是不可行的)。

谢谢

bash

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

将孔号转换为96孔板上的标识符

在96孔板中有8个柱(A,B,......)和12个柱(01 ... 12); 所以盘子看起来像这样:

A01 A02 ... A12
B01 B02 ... B12
C01 ...
...
H01 ..
Run Code Online (Sandbox Code Playgroud)

目前我已将这些板块识别为:

 1 2 3 4 ... 12
 13 14 15 ...24
 ..
 84 ...      96
Run Code Online (Sandbox Code Playgroud)

如何编写函数wellnumber2wellidentifier将数字索引转换为顶部使用的格式?例如,好的1将返回A01,13并将返回B01.

python bioinformatics

2
推荐指数
1
解决办法
900
查看次数

ggplot barplot:如何使用对数缩放的 y 轴显示小正数

主要问题:我想将从 0 到 1.0 的数据显示为向上的条形(从 0 开始),但不希望间隔是等距的,而是对数间隔的。

我试图将下面数据集中标记为“mean”的列显示为 ggplot 中的条形图,但由于数字非常小,我想在对数刻度上显示 y 轴,而不是对数据本身进行对数转换。换句话说,我想要y轴标签为0、1e-8、1e-6、1e-4、1e-2和1e-0的直立条(即从0到1.0,但间隔是对数缩放的)。

下面的解决方案不起作用,因为条形图是倒置的。

> print(df)
        type         mean           sd           se snp
V7    outer 1.596946e-07 2.967432e-06 1.009740e-08   A
V8    outer 7.472417e-07 6.598652e-06 2.245349e-08   B
V9    outer 1.352327e-07 2.515771e-06 8.560512e-09   C
V10   outer 2.307726e-07 3.235821e-06 1.101065e-08   D
V11   outer 4.598375e-06 1.653457e-05 5.626284e-08   E
V12   outer 5.963164e-07 5.372226e-06 1.828028e-08   F
V71  middle 2.035414e-07 3.246161e-06 1.104584e-08   A
V81  middle 9.000131e-07 7.261463e-06 2.470886e-08   B
V91  middle 1.647716e-07 2.875840e-06 9.785733e-09   C
V101 middle 3.290817e-07 3.886779e-06 1.322569e-08   D …
Run Code Online (Sandbox Code Playgroud)

logarithm r ggplot2 geom-bar

0
推荐指数
1
解决办法
2083
查看次数