2017-07-26 66 views
1

晚上好:)如何檢測多個附加圖像並將其切斷?

我想創建一個腳本,能夠逐個切割大圖片上的圖像,所以我想剪出9個不同的圖片。

enter image description here

也不是那麼難切出這些圖像,因爲實際上它是濫竽充數切出良好的線路和轉彎播放..所以,哪裏是我的問題嗎?

這個問題變得很複雜,因爲確實存在幾個偉大圖像的變體;例如,我的腳本可能會出現在大圖像上,如enter image description here

(在這裏,您可以看到8個不同的圖像,所以要剪切的線條不同)。

那麼我該如何到達那裏?

我還是一個初學者,我不明白一切:(

我希望我已經儘可能清晰。 非常感謝你提前!

+0

請將圖片添加到問題主體,而不是圖片的鏈接。已知不同照片的數量和尺寸? –

+0

我暫時不能插入圖片的主體(因爲我在論壇上的聲望不是10)。總之:)第一個鏈接的圖像的尺寸爲100x100,第二個的尺寸爲152x87 –

+0

對不起沒有意識到這一點。我爲你做了。也請分享你迄今爲止嘗試過的東西(你的腳本)。 –

回答

1

創建兩個陣列,一個在因爲您試圖測試水平線和垂直線的相似性,您應該遍歷圖像像素並比較每個像素的像素長度和圖像高度的長度,並將它們初始化爲零。

位置(x,y)添加到位置中的像素和(x,y+1)這意味着將每個像素與其右側的像素以及其下方的像素進行比較。 每個比較的結果應該是相似度百分比。

要計算兩個像素的相似性百分比,你可以按照這個問題的答案: Algorithm to check similarity of colors

中的位置的每個像素橫向比較(X,Y)的百分比結果應該被添加到值水平陣列的位置爲x。 因此,例如,如果:

pixel(3,0) compare to pixel(4,0) = 80% 
horizontalArray[3] += 80% (80) 
pixel(3,1) compare to pixel(4,1) = 72% 
horizontalArray[3] += 72% (152) 
pixel(3,2) compare to pixel(4,2) = 95% 
horizontalArray[3] += 95% (247) 
... 

,並以類似的方式計算的值的垂直比較:

pixel(0,3) compare to pixel(0,4) = 22% 
verticalArray[3] += 80% (22) 
pixel(1,3) compare to pixel(1.4) = 10% 
verticalArray[3] += 72% (32) 
pixel(2,3) compare to pixel(2,4) = 76% 
verticalArray[3] += 95% (108) 
... 

迭代後通過所有pf的圖像像素劃分在horizo​​ntalArray的值與所述圖像高度和verticalArray中的值與圖像寬度。這個動作的結果現在給你留下了兩個數組,其中包含每個水平線的平均相似度百分比和你圖片中的每個垂直線,現在你可以選擇一個任意的幻數,讓15%說,並且每條線少於15 %相似性是您將執行剪切的行。

測試腳本並查看它如何準確找到正確的行。

如果不夠敏感,請增加您的「幻數」的值,如果它太敏感並且找到不應該減少此幻數的值並重試的行。

編輯

我編輯我的建議,顏色相似公式,它在它的錯誤,會導致不準確的結果。 相反,我添加了對另一個處理顏色比較問題的答案的引用,將其與算法的其餘部分一起使用,它應該可以工作。

+0

非常感謝您提供這些有價值的信息......我不知道該怎麼做,所以再次感謝您!我會盡力認識到這一點,我告訴你:) –

+0

注意,我的更新,我有一個顏色相似度公式中的錯誤,而不是在這裏使用這個部分的答案:https://stackoverflow.com/questions/5392061/algorithm-to-check-similarity-of-colours –

+0

我更瞭解在前面的消息中向我指出的計算:') 事實上,我可以理解如何恢復這些RGB值,但是如何實現YUV值:/ 一些研究是必要的,當我找到解決方案時,我會回到你身邊:) –