當前位置:首頁 » 編程語言 » python提取圖片文字

python提取圖片文字

發布時間: 2022-09-13 20:13:37

A. python怎麼抓取網頁中DIV的文字

使用 BeautifulSoup 進行解析 html,需要安裝 BeautifulSoup

#coding=utf-8

importurllib2
importsocket
importhttplib
frombs4importBeautifulSoup

UserAgent='Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/57.0.2987.98Safari/537.36'

defdownloadPage(url):

try:

opener=urllib2.build_opener()

headers={'User-Agent':UserAgent}

req=urllib2.Request(url=url,headers=headers)

resp=opener.open(req,timeout=30)
result=resp.read()

returnresult

excepturllib2.HTTPError,ex:
printex
return''
excepturllib2.URLError,ex:
printex
return''
exceptsocket.error,ex:
printex
return''
excepthttplib.BadStatusLine,ex:
printex
return''


if__name__=='__main__':

content=downloadPage("這填douban的地址")

#printcontent

soap=BeautifulSoup(content,'lxml')

lst=soap.select('ol.grid_viewli')

foriteminlst:
#電影詳情頁鏈接
printitem.select('div.item>div.pica')[0].attrs['href']

#圖片鏈接
printitem.select('div.item>div.picaimg')[0].attrs['src']

#標題
printitem.select('div.item>div.info>div.hd>a>span.title')[0].get_text()

#評分
printitem.select('div.item>div.info>div.bd>div.star>span.rating_num')[0].get_text()
print'-------------------------------------------------------------------------'

B. 如何使用python來獲取pdf文件里的文字,最好是不能亂碼

提取pdf文字可以推薦一個工具

第一種文字型PDF比較簡單,可以採用格式轉換的方式直接轉換PDF文件為文本。打開PDF文字識別軟體,執行「文件」-「打開圖像...」導入PDF文件,然後執行「輸出」-「PDF文件轉換為TXT文件」第二種圖像型PDF,有的PDF都是掃描圖片,這個就不能復制文字了,可以採用OCR識別的方式,將PDF文件轉換為可編輯文檔。這也是本文主要講的pdf文字識別方法。還是打開PDF文字提取軟體,執行「文件」-「打開圖像...」導入PDF文件。然後執行「識別」-「開始識別...」。

C. python處理圖片數據

目錄

1.機器是如何存儲圖像的?

2.在Python中讀取圖像數據

3.從圖像數據中提取特徵的方法#1:灰度像素值特徵

4.從圖像數據中提取特徵的方法#2:通道的平均像素值

5.從圖像數據中提取特徵的方法#3:提取邊緣
是一張數字8的圖像,仔細觀察就會發現,圖像是由小方格組成的。這些小方格被稱為像素。

但是要注意,人們是以視覺的形式觀察圖像的,可以輕松區分邊緣和顏色,從而識別圖片中的內容。然而機器很難做到這一點,它們以數字的形式存儲圖像。請看下圖:

機器以數字矩陣的形式儲存圖像,矩陣大小取決於任意給定圖像的像素數。

假設圖像的尺寸為180 x 200或n x m,這些尺寸基本上是圖像中的像素數(高x寬)。

這些數字或像素值表示像素的強度或亮度,較小的數字(接近0)表示黑色,較大的數字(接近255)表示白色。通過分析下面的圖像,讀者就會弄懂到目前為止所學到的知識。

下圖的尺寸為22 x 16,讀者可以通過計算像素數來驗證:

圖片源於機器學習應用課程

剛才討論的例子是黑白圖像,如果是生活中更為普遍的彩色呢?你是否認為彩色圖像也以2D矩陣的形式存儲?

彩色圖像通常由多種顏色組成,幾乎所有顏色都可以從三原色(紅色,綠色和藍色)生成。

因此,如果是彩色圖像,則要用到三個矩陣(或通道)——紅、綠、藍。每個矩陣值介於0到255之間,表示該像素的顏色強度。觀察下圖來理解這個概念:

圖片源於機器學習應用課程

左邊有一幅彩色圖像(人類可以看到),而在右邊,紅綠藍三個顏色通道對應三個矩陣,疊加三個通道以形成彩色圖像。

請注意,由於原始矩陣非常大且可視化難度較高,因此這些不是給定圖像的原始像素值。此外,還可以用各種其他的格式來存儲圖像,RGB是最受歡迎的,所以筆者放到這里。讀者可以在此處閱讀更多關於其他流行格式的信息。

用Python讀取圖像數據

下面開始將理論知識付諸實踐。啟動Python並載入圖像以觀察矩陣:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from skimage.io import imread, imshow
image = imread('image_8_original.png', as_gray=True)
imshow(image)

#checking image shape
image.shape, image

(28,28)

矩陣有784個值,而且這只是整個矩陣的一小部分。用一個LIVE編碼窗口,不用離開本文就可以運行上述所有代碼並查看結果。

下面來深入探討本文背後的核心思想,並探索使用像素值作為特徵的各種方法。

方法#1:灰度像素值特徵

從圖像創建特徵最簡單的方法就是將原始的像素用作單獨的特徵。

考慮相同的示例,就是上面那張圖(數字『8』),圖像尺寸為28×28。

能猜出這張圖片的特徵數量嗎?答案是與像素數相同!也就是有784個。

那麼問題來了,如何安排這784個像素作為特徵呢?這樣,可以簡單地依次追加每個像素值從而生成特徵向量。如下圖所示:

下面來用Python繪制圖像,並為該圖像創建這些特徵:

image = imread('puppy.jpeg', as_gray=True)

image.shape, imshow(image)

(650,450)

該圖像尺寸為650×450,因此特徵數量應為297,000。可以使用NumPy中的reshape函數生成,在其中指定圖像尺寸:

#pixel features

features = np.reshape(image, (660*450))

features.shape, features

(297000,)
array([0.96470588, 0.96470588, 0.96470588, ..., 0.96862745, 0.96470588,
0.96470588])

這里就得到了特徵——長度為297,000的一維數組。很簡單吧?在實時編碼窗口中嘗試使用此方法提取特徵。

但結果只有一個通道或灰度圖像,對於彩色圖像是否也可以這樣呢?來看看吧!

方法#2:通道的平均像素值

在讀取上一節中的圖像時,設置了參數『as_gray = True』,因此在圖像中只有一個通道,可以輕松附加像素值。下面刪除參數並再次載入圖像:

image = imread('puppy.jpeg')
image.shape

(660, 450, 3)

這次,圖像尺寸為(660,450,3),其中3為通道數量。可以像之前一樣繼續創建特徵,此時特徵數量將是660*450*3 = 891,000。

或者,可以使用另一種方法:

生成一個新矩陣,這個矩陣具有來自三個通道的像素平均值,而不是分別使用三個通道中的像素值。

下圖可以讓讀者更清楚地了解這一思路:

這樣一來,特徵數量保持不變,並且還能考慮來自圖像全部三個通道的像素值。

image = imread('puppy.jpeg')
feature_matrix = np.zeros((660,450))
feature_matrix.shape

(660, 450)

現有一個尺寸為(660×450×3)的三維矩陣,其中660為高度,450為寬度,3是通道數。為獲取平均像素值,要使用for循環:

for i in range(0,iimage.shape[0]):
for j in range(0,image.shape[1]):
feature_matrix[i][j] = ((int(image[i,j,0]) + int(image[i,j,1]) + int(image[i,j,2]))/3)

新矩陣具有相同的高度和寬度,但只有一個通道。現在,可以按照與上一節相同的步驟進行操作。依次附加像素值以獲得一維數組:

features = np.reshape(feature_matrix, (660*450))
features.shape

(297000,)

方法#3:提取邊緣特徵

請思考,在下圖中,如何識別其中存在的對象:

識別出圖中的對象很容易——狗、汽車、還有貓,那麼在區分的時候要考慮哪些特徵呢?形狀是一個重要因素,其次是顏色,或者大小。如果機器也能像這樣識別形狀會怎麼樣?

類似的想法是提取邊緣作為特徵並將其作為模型的輸入。稍微考慮一下,要如何識別圖像中的邊緣呢?邊緣一般都是顏色急劇變化的地方,請看下圖:

筆者在這里突出了兩個邊緣。這兩處邊緣之所以可以被識別是因為在圖中,可以分別看到顏色從白色變為棕色,或者由棕色變為黑色。如你所知,圖像以數字的形式表示,因此就要尋找哪些像素值發生了劇烈變化。

假設圖像矩陣如下:

圖片源於機器學習應用課程

該像素兩側的像素值差異很大,於是可以得出結論,該像素處存在顯著的轉變,因此其為邊緣。現在問題又來了,是否一定要手動執行此步驟?

當然不!有各種可用於突出顯示圖像邊緣的內核,剛才討論的方法也可以使用Prewitt內核(在x方向上)來實現。以下是Prewitt內核:

獲取所選像素周圍的值,並將其與所選內核(Prewitt內核)相乘,然後可以添加結果值以獲得最終值。由於±1已經分別存在於兩列之中,因此添加這些值就相當於獲取差異。

還有其他各種內核,下面是四種最常用的內核:

圖片源於機器學習應用課程

現在回到筆記本,為同一圖像生成邊緣特徵:

#importing the required libraries
import numpy as np
from skimage.io import imread, imshow
from skimage.filters import prewitt_h,prewitt_v
import matplotlib.pyplot as plt
%matplotlib inline

#reading the image
image = imread('puppy.jpeg',as_gray=True)

#calculating horizontal edges using prewitt kernel
edges_prewitt_horizontal = prewitt_h(image)
#calculating vertical edges using prewitt kernel
edges_prewitt_vertical = prewitt_v(image)

imshow(edges_prewitt_vertical, cmap='gray')

D. word圖片和文字文混排內容怎麼用python讀取寫入

Python可以利用python-docx模塊處理word文檔,處理方式是面向對象的。也就是說python-docx模塊會把word文檔,文檔中的段落、文本、字體等都看做對象,對對象進行處理就是對word文檔的內容處理。

二,相關概念
如果需要讀取word文檔中的文字(一般來說,程序也只需要認識word文檔中的文字信息),需要先了解python-docx模塊的幾個概念。

1,Document對象,表示一個word文檔。
2,Paragraph對象,表示word文檔中的一個段落
3,Paragraph對象的text屬性,表示段落中的文本內容。
三,模塊的安裝和導入
需要注意,python-docx模塊安裝需要在cmd命令行中輸入pip install python-docx,如下圖表示安裝成功(最後那句英文Successfully installed,成功地安裝完成,十分考驗英文水平。)

注意在導入模塊時,用的是import docx。

也真是奇了怪了,怎麼安裝和導入模塊時,很多都不用一個名字,看來是很有必要出一個python版本的模塊管理程序python-maven了,本段純屬PS。

四,讀取word文本
在了解了上面的信息之後,就很簡單了,下面先創建一個D:\temp\word.docx文件,並在其中輸入如下內容。

然後寫一段程序,代碼及輸出結果如下:

#讀取docx中的文本代碼示例
import docx
#獲取文檔對象
file=docx.Document("D:\\temp\\word.docx")
print("段落數:"+str(len(file.paragraphs)))#段落數為13,每個回車隔離一段

#輸出每一段的內容
for para in file.paragraphs:
print(para.text)

#輸出段落編號及段落內容
for i in range(len(file.paragraphs)):
print("第"+str(i)+"段的內容是:"+file.paragraphs[i].text)
運行結果:

================ RESTART: F:/360data/重要數據/桌面/學習筆記/readWord.py ================
段落數:13


我看見一座山

雄偉的大山

真高啊



這座山是!

真的很高!
第0段的內容是:啊
第1段的內容是:
第2段的內容是:我看見一座山
第3段的內容是:
第4段的內容是:雄偉的大山
第5段的內容是:
第6段的內容是:真高啊
第7段的內容是:
第8段的內容是:啊
第9段的內容是:
第10段的內容是:這座山是!
第11段的內容是:
第12段的內容是:真的很高!
>>>
總結
以上就是本文關於Python讀取word文本操作詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

E. python怎麼識別圖片文字

可以調用opencv來進行識別

F. 圖片裡面的文字能提取出來嗎

圖片中的文字是可以提取出來的,使用ocr文字識別工具便可以了,比如手迅捷辦公官網中有一個ocr文字識別工具,可以幫助到您;

這個ocr尤其適合新手操作,界面簡單明了,可以識別幾十張語音。
ocr文字識別工具是通過光學作用進行圖片文字提取的!

G. python2.7 ocr 文本識別 怎麼弄的啊

《PandaOCR v2.7圖片文字識別》網路網盤資源免費下載:

鏈接: https://pan..com/s/1nsqG9Fs5lLED4mCe798Nfw

?pwd=8bph 提取碼: 8bph

PandaOCR v2.7最新版是一款專注於OCR 文字識別的免費軟體,支持多功能 OCR 識別、即時翻譯和朗讀等。軟體的功能非常的多並且強大,能夠進行截圖內容識別,剪切OCR識別還有各種圖片內容識別,能夠幫助用戶非常快捷方便的將文本,圖紙或者圖片內的文字識別出來給用戶免費使用,這樣就不需要用戶去看著文字一個字一個字的手打出來,非常的節省用戶的工作時間。

H. 從圖中提取文字

從圖片中提取文字,使用OCR技術便可以實現了。比如雲脈的文檔識別軟體,只需將圖片導入到系統中,在系統上進行適當的裁切美化,隨後點擊識別,便可以將圖片文字轉化成可編輯的文字信息了。

I. python爬蟲,抓取一個頁面中所有鏈接內的文字和圖片並保存在本地怎麼

並不是所有的網站結構都是一樣的,你說的功能大體可以用Python實現,但並沒有寫好的通用代碼,還需要根據不同的網頁去做調試。

J. 你好!老師 在python中怎樣在一段話中提取一個字/就像下面的那個圖我要提取8怎麼提取呢

這個跟你的文本的模式有關。為了每次都能提取出來,要有一個統一的提取標准,並且最好每次能匹配的總是唯一。

舉個例子,這里你的這個數字出現的位置是從length出現之後到這句話末尾的最後的字元。那就可以用以下函數來匹配。

12345678910111213

str1='the lth path length 8 '#獲取length這個單詞的位置pos=str1.find('length')#從這個位置加上length這個單詞的長度到結尾就是最後的數字print(str1[pos + len('length'):])#去掉其中的多餘的空白字元str2=str1[pos + len('length'):].strip()#轉換成數字num=int(str2)print(num)#當然一條語句就能搞定num=int(str1[str1.find('length')+len('length'):].strip())print(num)

不明白可追問。

熱點內容
怎麼把伺服器的ip固定了 發布:2025-01-12 03:55:42 瀏覽:578
php伺服器開發 發布:2025-01-12 03:55:35 瀏覽:672
軟體自製編程 發布:2025-01-12 03:54:00 瀏覽:534
j2ee和java的區別 發布:2025-01-12 03:42:44 瀏覽:581
android6小米 發布:2025-01-12 03:38:35 瀏覽:85
redis與資料庫 發布:2025-01-12 03:20:21 瀏覽:211
怎麼升級安卓100 發布:2025-01-12 03:19:37 瀏覽:516
c語言倒數 發布:2025-01-12 03:14:37 瀏覽:929
如何免費激活行動電話卡安卓 發布:2025-01-12 03:10:27 瀏覽:89
2020凱越精英配置什麼樣 發布:2025-01-12 03:08:02 瀏覽:685