欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    天要講的這個技術(shù)方案,能用到人會覺得真有用,用不到的人會覺得真沒用。這個方案就是采用python實現(xiàn)將安卓手機(jī)屏幕上的部分內(nèi)容轉(zhuǎn)為文字。效果如下:

    就算是包含公式或者表格也可以識別:

    有類似需求的人,自然能看到商機(jī)。比如采集APP排名,或者自動做題等等。不過,今天我僅僅從技術(shù)上說是如何實現(xiàn)的。

    要想實現(xiàn)這個功能,首先要獲得屏幕上的內(nèi)容。那么,我們肯定想到的是截屏。現(xiàn)在智能手機(jī)基本上都有一個截屏功能。比如在華為手機(jī)上,敲擊兩下屏幕就能取得當(dāng)前圖像。

    如果用代碼去實現(xiàn),只需一行命令,手機(jī)系統(tǒng)截屏也是這樣做的:

    adb shell screencap -p /sdcard/screenshot.png

    這行命令實現(xiàn)了截取手機(jī)當(dāng)前屏幕,并將圖片保存,文件名為screenshot.png。而python調(diào)用命令的代碼更簡單,僅僅就是os.system("命令語句")。

    不過,想要執(zhí)行adb命令,需要一些工具支持。因此得去如下地址下載platform-tools這套工具:

    https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn

    打開頁面之后,選擇適合自己系統(tǒng)的內(nèi)容下載。

    下載解壓之后,可以先測試一下。將安卓手機(jī)插上數(shù)據(jù)線,打開允許USB調(diào)試模式。然后進(jìn)入解壓目錄,我的是放在C盤根目錄下,運(yùn)行adb devices就可以看到已連接的手機(jī)情況。

    上面的情況表示有一部設(shè)備已連接。

    有了這個環(huán)境,那么我們通過python代碼就可以輕松獲取截圖了。

    # 執(zhí)行截屏并保存命令
    os.system("C:/platform-tools/adb shell screencap -p /sdcard/screenshot.png")
    # 將保存的截圖從手機(jī)復(fù)制到電腦中
    os.system("C:/platform-tools/adb pull /sdcard/screenshot.png "+img_path)

    兩句代碼,一句是截屏保存,另一個句是拷貝截圖到電腦。img_path是電腦的存放圖片的路徑。我設(shè)置的是在項目根目錄下的img文件夾下,文件名為時間戳。

    目前獲得的圖片是手機(jī)的全屏,當(dāng)然這個也能識別。但是,現(xiàn)實中我們希望能再次編輯。比如僅僅識別某一部分。

    因此,我們需要用pythontkinter寫一個界面操作。當(dāng)鼠標(biāo)按下時記錄起點,鼠標(biāo)移動時繪制路徑,鼠標(biāo)抬起時記錄終點并裁剪圖片。

    以下是界面主框架代碼:

    if __name__=='__main__':
        
        # 鼠標(biāo)左鍵按下時x, y坐標(biāo)
        left_mouse_down_x, left_mouse_down_y=0, 0
        sole_rectangle=None # 畫出的矩形
        target=f"{BASE_DIR}{os.sep}img"
        w_flag=True
        clip_img_path=""
    
        while w_flag:
    
            win=tk.Tk()
            win.title("手機(jī)截屏轉(zhuǎn)文字") 
            frame=tk.Frame()
            frame.pack()
    
            button=tk.Button(frame, text="截屏", command=win.destroy)
            button.pack(side="left", padx=10, pady=8)
    
            button=tk.Button(frame, text="識別", command=ocr)
            button.pack(side="left", padx=10, pady=8)
    
            button=tk.Button(frame, text="退出", command=exit)
            button.pack(side="left", padx=50, pady=8)
    
            image=Image.open(img_path)
            image_x, image_y=image.size
            img=ImageTk.PhotoImage(image)
            
            canvas=tk.Canvas(win, width=image_x, height=image_y, bg='white')
            i=canvas.create_image(0, 0, anchor='nw', image=img)
            canvas.pack(padx=10, pady=10)
            
            canvas.bind('<Button-1>', left_mouse_down) # 鼠標(biāo)左鍵按下
            canvas.bind('<ButtonRelease-1>', left_mouse_up) # 鼠標(biāo)左鍵釋放
            canvas.bind('<Button-3>', right_mouse_down) # 鼠標(biāo)右鍵按下
            canvas.bind('<ButtonRelease-3>', right_mouse_up) # 鼠標(biāo)右鍵釋放
            canvas.bind('<B1-Motion>', moving_mouse) # 鼠標(biāo)左鍵按下并移動
    
            win.mainloop()

    下面是鼠標(biāo)的各類操作:

    # 鼠標(biāo)左鍵按下事件
    def left_mouse_down(event):
        global left_mouse_down_x, left_mouse_down_y
        # 記錄按下的坐標(biāo),賦值給全局變量
        left_mouse_down_x=event.x
        left_mouse_down_y=event.y
    
    # 鼠標(biāo)左鍵按下并移動
    def moving_mouse(event):
        global sole_rectangle # 繪制的矩形
        # 鼠標(biāo)按下的x,y
        global left_mouse_down_x, left_mouse_down_y
        moving_mouse_x=event.x
        moving_mouse_y=event.y
        # 如果原來畫過矩形,刪除前一個矩形,繪制出新的
        if sole_rectangle is not None:
            canvas.delete(sole_rectangle) 
        sole_rectangle=canvas.create_rectangle(left_mouse_down_x, left_mouse_down_y, moving_mouse_x,moving_mouse_y, outline='red')
    
    # 鼠標(biāo)左鍵抬起事件
    def left_mouse_up(event):
        global clip_img_path
    
        # 記錄抬起時的坐標(biāo),鼠標(biāo)左鍵抬起時x,y坐標(biāo)
        left_mouse_up_x=event.x
        left_mouse_up_y=event.y
        # 通過抬起的點減去按下的點,比劃矩形,計算出寬和高
        width=left_mouse_up_x - left_mouse_down_x
        height=left_mouse_up_y - left_mouse_down_y
        # 如果寬高太小,有可能是點擊了一下,或者想放棄這次操作
        if width < 20 or height < 20:
            print("size is to small")
            return
        # 保存文件
        corp_image=image.crop((left_mouse_down_x, left_mouse_down_y, left_mouse_up_x, left_mouse_up_y))
        corp_image.save(clip_img_path)

    這樣我們就實現(xiàn)了一個從截屏上畫圖裁剪的功能:

    下一步要做的,就是將裁剪選取的小圖片交給OCR服務(wù)去識別。

    這OCR該如何選型呢?是該自研還是調(diào)用第三方?

    需要看需求!如果我們的OCR識別在一百個字符以內(nèi),而且自己擁有數(shù)據(jù),建議自研。因此這類小場景,自研的話成本不高,而且準(zhǔn)確率會比用第三方還要高。就比如LED數(shù)字屏幕的識別,或者水表、電表儀器的識別,這類適合自己做。

    但是,如果你想要識別大場景,就比如漢字識別。這里面涉及眾多標(biāo)點符號、繁簡字體,它會有上萬個字符。這時我們很難湊足那么多數(shù)據(jù)。而且近似字符很多,需要做矯正,也有技術(shù)難度。因此,選用第三方的服務(wù),反而成本更低。

    我們這次要識別的內(nèi)容,不但包含中英文、甚至還有公式。那這必須要使用第三方。第三方OCR服務(wù)多了去了,基本上每家都有,我們隨便選一家就好。就比如阿里的OCR。

    選哪一個場景也看你的需求。有通用的識別,也有專用的識別。因為我有識別文字和公式的需求,因此選擇教育場景里的題目識別。

    關(guān)于題目識別的介紹如下:

    https://duguang.aliyun.com/experience?type=edu&subtype=question_ocr#intro

    阿里的文檔還是挺好的,提供了多種對接方式。不過,還是需要先開通服務(wù)才行。每個月有200次免費(fèi)額度。

    我開通了。

    然后創(chuàng)建AccessKey。

    拿著AccessKey就可以調(diào)用服務(wù)了。關(guān)于調(diào)用的代碼,官方也提供了詳細(xì)的文檔和示例:

    https://next.api.aliyun.com/api/ocr-api/2021-07-07/RecognizeEduQuestionOcr?sdkStyle=dara&tab=DEMO&lang=PYTHON

    我們只需要將key換成自己的就行。調(diào)用后,接口會返回識別到的內(nèi)容。拿到識別的內(nèi)容,顯示出來就可以了。

    總結(jié)起來,就兩步。第一步截屏保存,第二步識別顯示。

    至于作用嘛,就是開頭說的。用到的會說有用,用不到的確實沒用。因為這點功能,是很多掃描軟件附帶的能力。

    如果咱們只是偶爾用幾次,那么隨便找一個軟件更合適。但是如果我們經(jīng)常用,又有個性化需求,需要批量操作,或者后續(xù)操作想自動化,那么自己開發(fā)會有更多可控制的地方。

    最后再看一下綜合效果。

    對通知公告類的識別

    對課程直播類的識別

    米MIXFlip是最近剛剛發(fā)布的全新折疊屏機(jī)型,這款新機(jī)采用的是上下折疊設(shè)計,也是小米旗下的首款小折疊屏機(jī)型,不僅僅擁有超高的外觀顏值,而且新機(jī)搭載的功能也是比較多的,那么小米MIXFlip怎么連接電腦?下面就讓我們來一起看看吧!

    小米MIXFlip怎么連接電腦?

    小米MIX Flip連接電腦的方法主要涉及兩種方式:?一種是傳統(tǒng)的USB傳輸文件方式,?另一種是通過小米云服務(wù)電腦客戶端進(jìn)行云輸入。?

    傳統(tǒng)USB傳輸文件方式:?

    首先,?打開小米手機(jī)的設(shè)置。?

    點擊全部參數(shù),?進(jìn)入后連續(xù)點擊MIUI版本大約5次,?以開啟開發(fā)者模式。?

    開啟開發(fā)者模式后,?將手機(jī)與電腦進(jìn)行連接,?選擇USB用途為傳輸文件。?

    連接成功后,?打開我的電腦,?選擇小米手機(jī)設(shè)備,?即可進(jìn)入內(nèi)部存儲查看相關(guān)文件。?

    通過小米云服務(wù)電腦客戶端進(jìn)行云輸入:?

    在電腦安裝并開啟小米云服務(wù)電腦客戶端或登錄i.mi.com。?

    在電腦端云輸入框中輸入需要發(fā)送到手機(jī)剪貼板中的文字,?點擊發(fā)送按鈕。?

    打開手機(jī)任意應(yīng)用(?如微信、?短信)?,?長按即可粘貼云輸入對應(yīng)內(nèi)容。?

    這兩種方法分別適用于數(shù)據(jù)傳輸和文字輸入的需求。?用戶可以根據(jù)具體的使用場景選擇合適的方式連接電腦。?

    參數(shù)配置

    配色介紹

    處理器

    充電接口

    防水等級

    屏幕介紹

    電池容量

    攝像頭

    網(wǎng)絡(luò)支持

    生物識別

    小米MIXFlip怎么連接電腦相信大家都已經(jīng)清楚了吧!在很多場合中大家都需要把手機(jī)和電腦相連接,如果大家有這方面需求的話,可以按照上面的方法來試試哦。

    文章來自互聯(lián)網(wǎng),只做分享使用。發(fā)布者:小白測評,轉(zhuǎn)轉(zhuǎn)請注明出處:https://www.baoxiaoke.com/article/158074.html

    機(jī)屏幕的尺寸有時候會限制我們的使用體驗,因此,許多用戶會選擇將手機(jī)屏幕投影到電腦上。


    今天,小呆要向大家推薦一款開源、無廣告的安卓手機(jī)投屏軟件,很多相關(guān)項目都是基于它開發(fā)的。


    Scrcpy投屏工具


    這款工具是一個廣受歡迎的安卓投屏工具,能夠?qū)崟r將安卓手機(jī)的畫面?zhèn)鬏數(shù)絇C上,這與微軟的Phone Link有些類似,然而,微軟Phone Link有很多限制,并不是所有手機(jī)都能支持,而Scrcpy在這種情況下就顯得尤為有用了。



    手機(jī)無需獲取root權(quán)限,電腦也無需安裝任何軟件,只需將手機(jī)與電腦連接,然后打開「scrcpy.exe」,手機(jī)就會自動連接上。



    在連接之前,要在手機(jī)設(shè)置中開啟USB調(diào)試,設(shè)置過程非常方便,使用起來也非常流暢。



    此外,你還可以將電腦上的apk文件拖拽到手機(jī)投屏窗口,然后直接點擊安裝,整個安裝過程非常流暢。



    總的來說,這款安卓投屏工具無需安裝,也無需root權(quán)限,不僅可以用來投屏,還可以直接拖拽apk文件進(jìn)行安裝。如果你對這款軟件感興趣,不妨下載體驗!


    在奇跡秀回復(fù)【Scrcpy投屏】獲取下載

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有