0
我編寫了一個python腳本,用於檢測圖像中編碼的字母。該腳本使用openCV的模板匹配來匹配嵌入圖像中的字符/字母。除空格(空格鍵)字符外,檢測工作正常。檢測傾斜字體中單詞之間的空間(酒吧)
下面是一個示例圖像
有一些(易/直接)的方式來檢測使用單詞之間的空格(或不使用)在python OpenCV的?
我編寫了一個python腳本,用於檢測圖像中編碼的字母。該腳本使用openCV的模板匹配來匹配嵌入圖像中的字符/字母。除空格(空格鍵)字符外,檢測工作正常。檢測傾斜字體中單詞之間的空間(酒吧)
下面是一個示例圖像
有一些(易/直接)的方式來檢測使用單詞之間的空格(或不使用)在python OpenCV的?
可以爲空的空間掃描沿傾斜垂直線
計數接合間隙線(w
)
如果寬或(在情況3)等於閾值,則發現間隙是字之間的間隙(藍線)
這是我如何做在C++:
int x,y,i,w;
picture pic0,pic1,pic2; // pic0 - original input image,pic1 output, pic2 temp
pic1=pic0; // copy input image pic0 to pic2
pic2=pic0; // copy input image pic0 to pic1
pic2.rgb2i(); // and convert to grayscale intensity
for (w=0,x=pic2.ys>>1;x<pic2.xs;x++)
{
// count pixels per skewed vertical line
for (i=0,y=0;y<pic2.ys;y++)
if (pic2.p[y][x-(y>>1)].dd<200) i++;
if (!i) w++; // increment gap width
if ((i)||(x==pic2.xs-1))
{
if (w>=3) // if gap bigger then treshold
{ // draw blue gap lines
for (i=x,x-=w;x<i;x++)
for (y=0;y<pic1.ys;y++)
pic1.p[y][x-(y>>1)].dd=0x000000FF;
}
w=0;
continue;
}
// if gap found draw green line
for (y=0;y<pic1.ys;y++)
pic1.p[y][x-(y>>1)].dd=0x0000FF00;
}
這是輸出的樣子:
我用自己的圖片類的圖像,以便一些成員是: xs,ys
是在像素的圖像的大小 p[y][x].dd
是在(X,Y)的位置32位整數類型像素 clear(color)
清除整個圖像 resize(xs,ys)
圖像大小調整到新的分辨率
[注意事項]
這使用固定傾斜角度進行掃描以使其穩定,您需要首先找到傾斜角度,然後沿着它進行掃描。
最後的差距應該也是藍色我忘記執行if (w>=3)...
如果最後x
處理不管i
。源已經更新,但圖像不是。