autojs之提取图片中的红色文字(通过找边界进行裁剪)
生活随笔
收集整理的這篇文章主要介紹了
autojs之提取图片中的红色文字(通过找边界进行裁剪)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
autojs之提取圖片中的紅色文字——通過找邊界進行裁剪
- 一、前言
- 二、參考
- 三、效果
- 1.autojs的findcolor函數找到的左上邊界的點
- 2.找右下邊界
- 四、總結
一、前言
之前寫過通過二值化的方法提取圖片中的紅色文字,感覺很麻煩,在看到下面按鍵精靈的文章后,覺得可以一試
二、參考
【按鍵精靈安卓版】找出不同顏色的文字(找圖方向參數的應用)
事實上,autojs里沒有按鍵精靈findcolor的功能,不能從指定的方向對圖片進行搜索,也不能準確的找到紅色文字最外側的點,所以很難找到文字的邊界;
而且這種方法只適用于單行的紅色文字,如果文字有換行,那么需要添加更多的判斷,個人感覺很不方便。
三、效果
實際功能其實沒有實現,因為紅色文字的邊界很難找到,只是把我測試的效果給大家看一下
1.autojs的findcolor函數找到的左上邊界的點
path = "/sdcard/Pictures/QQ/a.png" var img = images.read(path); log("讀取圖片")//循環找色,找到紅色時停止并報告坐標 while (true) {var point = findColor(img, "#fd1111", { threshold: 120 });if (point) {toastLog("找到紅色#fd1111,坐標為(" + point.x + ", " + point.y + ")");var clip = images.clip(img,point.x, point.y, 20, 20);//裁剪images.save(clip, "./clip2.png");break} } img.recycle();//回收圖片,截屏的不用 exit()可以看到找到的點并不是最左邊的點
2.找右下邊界
不能從指定的方向對圖片進行搜索,所以只能在找到最左邊屆的點后,通過循環往右找,直到找到不是紅字的黑色字后停止
但是因為圖片里紅色的范圍很大,黑色的范圍也很大,并不能很好的匹配,所以這個方法的準確度可能還不如二值化的方法
path = "/sdcard/Pictures/QQ/a.png" var img = images.read(path); log("讀取圖片") while (true) {var point = findColor(img, "#fd1111", { threshold: 120 });if (point) {toastLog("找到紅色#fd1111,坐標為(" + point.x + ", " + point.y + ")");var x1 = point.x, x2 = 0, y1 = point.y, y2 = 0;for (var x = point.x, y = point.y; y < img.getHeight(); y += 1) {var color = images.pixel(img, x, y);toastLog("坐標為(" + x + ", " + y + ") " + colors.toString(color));if (colors.isSimilar(color, "#000000", 50)) {//和黑色相似y2 = y;//下邊界break}}for (var x = point.x, y = point.y; x < img.getWidth(); x += 1) {//x < point.x + 100var color = images.pixel(img, x, y);toastLog("坐標為(" + x + ", " + y + ") " + colors.toString(color));if (colors.isSimilar(color, "#000000", 50)) {//和黑色相似//if (colors.toString(color) == "#E2DCDA") {x2 = x;//右邊界break}}log(x1, y1, x2 - x1, y2 - y1)var clip = images.clip(img, x1, y1, x2 - x1, y2 - y1);images.save(clip, "./clip.png");break} } img.recycle(); exit()四、總結
個人認為,這個通過邊界裁剪的方法也很麻煩,而且普適性還不如二值化的方法,暫且放棄這種方法。
有覺得的可行的朋友可以自己嘗試一下,歡迎討論。
還是研究一下怎么將圖片中的黑色變白,保持其他顏色不變,如果有懂行的大佬,希望指點一下,感謝。
總結
以上是生活随笔為你收集整理的autojs之提取图片中的红色文字(通过找边界进行裁剪)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 多进程 调用模块内函数_p
- 下一篇: 第二阶段冲刺站立会议09