在pandas中,这可以通过column.name来完成.
但是当它的火花数据帧列如何做同样的事情?
例如,调用程序有一个spark数据帧:spark_df
>>> spark_df.columns
['admit', 'gre', 'gpa', 'rank']
Run Code Online (Sandbox Code Playgroud)
这个程序调用我的函数:my_function(spark_df ['rank'])在my_function中,我需要列的名称即'rank'
如果是pandas数据帧,我们可以在my_function中使用
>>> pandas_df['rank'].name
'rank'
Run Code Online (Sandbox Code Playgroud) 我想即时p字元素EPSHTEIN的论文(检测与描边宽度自然场景文本转换(2010) )在自然图像文本检测.第一步是边缘检测.
我在文本中得到了一些额外的边缘.我应该如何删除它们?
原始图片:
我的边缘检测:

在示例中,您可以在文本 'WHY HURRY'中看到额外的边缘
我在Matlab中尝试过这些步骤:
% contrast enhancement
I_adjust = imadjust(I);
% dilation & erosion
se = strel(ones(3,3));
I_dilate = imdilate(I_adjust, se);
I_final = imerode(I_dilate, se);
% gaussian smoothing
h_mask = fspecial('gaussian');
I_final = imfilter(I_final,h_mask);
figure; imshow(I_final);
BW_canny = edge(I_final,'canny');
figure; imshow(BW_canny);
Run Code Online (Sandbox Code Playgroud)
根据belisarius的建议,我发现均值平移滤波器对于文本区域分割非常有效.现在我在执行Stroke Width变换时遇到了另一个问题(参见Epshtein的论文).
即使对于'S',笔划宽度也适用于像'H''Y'这样的字符,因为如果我们沿着渐变方向前进,相应的边缘通常是恒定的距离.
问题来自像'W'这样的字符.对于第一次上行程的左边缘的一部分,我们得到第二个上行的右边缘作为其对应的边缘.而另一部分,我们获得第一次上冲的右边缘.这引入了'W'区域的笔划宽度的显着变化,导致根据纸张将其称为非文本区域.
有谁能建议任何解决方案?
我遇到类似于CalvinKrishy问题的问题 Samplebias的解决方案不能处理我的数据.
我使用的是Python 2.7.
这是数据:
>>> a_t = namedtuple('a','f1 words')
>>> word_t = namedtuple('word','f2 value')
>>> w1 = word_t(f2=[0,1,2], value='abc')
>>> w2 = word_t(f2=[3,4], value='def')
>>> a1 = a_t(f1=[0,1,2,3,4],words=[w1, w2])
>>> a1
a(f1=[0, 1, 2, 3, 4], words=[word(f2=[0, 1, 2], value='abc'), word(f2=[3, 4], value='def')])
Run Code Online (Sandbox Code Playgroud)
>>> w3 = {}
>>> w3['f2'] = [0,1,2]
>>> w3['value'] = 'abc'
>>> w4 = {}
>>> w4['f2'] = [3,4]
>>> w4['value'] = 'def'
>>> a2 = {}
>>> a2['f1'] = [0, 1, …Run Code Online (Sandbox Code Playgroud)