導航:首頁 > 編程語言 > python切片遍歷像素

python切片遍歷像素

發布時間:2024-10-01 05:14:07

python怎麼在一群點集中,提取中心坐標

回答你的問題費老大勁了,opencv用的不熟

我運行輸出:

row=14,col=5
14 5 248 242 234 237
gray2 crop: 220 232 219 5
中心點坐標(109,108),圖片寬高(w=218, h=217)
[95, 134] [83, 173]
斜率k= 3.25

#解題思路:因為我下載的你的圖片,黑色周圍還有白色,所以先去除了周圍的白色,保證只有黑色部分圖片
#對圖片轉灰度圖,這樣方便計算,每個像素點的值就是一個0-255的值,0為黑色,255為白色
#然後獲得灰度圖的row和col,與正常思維的width和height相反,row對應height,col對應width
#遍歷row和col,先獲得第一個白點,再獲得最後一個白點,然後根據這兩個坐標執行tan計算斜率k值
#讀取圖像
img2=cv2.imread("../img/blackWhite.png")
#轉成單通道黑白圖
gray=cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
cv2.imshow('img2',img2)
cv2.imshow('gray',gray)

sp=gray.shape
rows=sp[0]
cols=sp[1]
cr=0
cl=0
#裁剪左邊和上邊空白
forrowinrange(rows):
isBreak=False
forcolinrange(cols):
ifgray[row,col]==0:
cr=row
cl=col
print(" row=%d,col=%d"%(row,col))
isBreak=True
break
#print(gray[row,col],end='')
#if(col==cols-1):
#print(" row=%d,col=%d-------------------------------"%(row,col))
ifisBreak==True:
break
print(cr,cl,rows,cols,rows-cr,cols-cl)
gray2=gray[cr:rows-cr,cl:cols-cl]
cv2.imshow('gray2',gray2)

#裁剪右下角空白
sp=gray2.shape
rows=sp[0]
cols=sp[1]
row=rows-1

print("gray2crop:",rows,cols,row,col)
whilerow!=0:
isBreak=False
col=cols-1
whilecol!=0:
ifgray2[row,col]==0:
isBreak=True
break
col-=1
ifisBreak==True:
break
row-=1
gray3=gray2[0:row+1,0:col+1]
cv2.imshow('gray3',gray3)

#對裁剪後的gray3求中心點坐標
sp=gray3.shape
rows=sp[0]
cols=sp[1]
x=cols//2
y=rows//2
print("中心點坐標(%d,%d),圖片寬高(w=%d,h=%d)"%(x,y,cols,rows))

#求斜率(y2-y1)/(x2-x1)
#遍歷出第一個白點和最後一個白點,做計算
x1y1=[]
x2y2=[]

#求第一個白點坐標
forrowinrange(rows):
isBreak=False
forcolinrange(cols):
ifgray3[row,col]==255:
x1y1.append(col)
x1y1.append(row)
isBreak=True
break
ifisBreak==True:
break
#求最後一個白點坐標
row=rows-1
whilerow!=0:
isBreak=False
col=cols-1
whilecol!=0:
ifgray2[row,col]==255:
x2y2.append(col)
x2y2.append(row)
isBreak=True
break
col-=1
ifisBreak==True:
break
row-=1
print(x1y1,x2y2)
#計算斜率tan值
k=abs(x2y2[1]-x1y1[1])/abs(x2y2[0]-x1y1[0])
print("斜率k=",k)
cv2.waitKey(0)
cv2.destroyAllWindows()

⑵ 怎樣利用Python進行圖片分析

fromPILimportImage###此處為導出包,注意字母大小寫
importos,os.path

#指明被遍歷的文件夾
rootdir=os.path.abspath(os.curdir)+'/Image/'
rootdir1=os.path.abspath(os.pardir)+"/Image/"

#打包用
ifos.path.isdir(rootdir):
pass
else:
rootdir=rootdir1

size=315,560
i=0

forparent,dirnames,filenamesinos.walk(rootdir):
forfilenameinfilenames:
infile=os.path.join(parent,filename)
im=Image.open(infile)###此處Image.open(dir)為多數對象應用的基礎.
im.thumbnail(size)###此處size為長度為2的tuple類型,改變圖片解析度
im.save(infile)###im.save(dir),圖片處理的最後都用這個,就是保存處理過後的圖片
i+=1
print(i,"Done")

要用pil包 安裝如下:pipinstallpillow

⑶ python圖像處理庫 哪個好 知乎

1.scikit-image
scikit-image是一個開源的Python包,適用於numpy數組。它實現了用於研究,教育和工業應用的演算法和實用工具。即使是那些剛接觸Python生態系統的人,它也是一個相當簡單直接的庫。此代碼是由活躍的志願者社區編寫的,具有高質量和同行評審的性質。
2.Numpy
Numpy是Python編程的核心庫之一,並為數組提供支持。圖像本質上是包含數據點像素的標准Numpy數組。因此,我們可以通過使用基本的NumPy操作,例如切片、掩膜和花式索引,來修改圖像的像素值。可以使用skimage載入圖像並使用matplotlib顯示圖像。
3.Scipy
scipy是Python的另一個類似Numpy的核心科學模塊,可用於基本的圖像操作和處理任務。特別是子模塊scipy.ndimage,提供了在n維NumPy數組上操作的函數。該包目前包括線性和非線性濾波,二值形態學,B樣條插值和對象測量等功能函數。
4. PIL/Pillow
PIL是Python編程語言的一個免費庫,它支持打開、操作和保存許多不同的文件格式的圖像。然而,隨著2009年的最後一次發布,它的開發停滯不前。但幸運的是還有Pillow,一個PIL積極開發的且更容易安裝的分支,它能運行在所有主要的操作系統,並支持Python3。這個庫包含了基本的圖像處理功能,包括點運算、使用一組內置卷積核的濾波和色彩空間的轉換。
5.OpenCV-Python
OpenCV是計算機視覺應用中應用最廣泛的庫之一
。OpenCV-Python是OpenCV的python版API。OpenCV-Python的優點不只有高效,這源於它的內部組成是用C/C++編寫的,而且它還容易編寫和部署。這使得它成為執行計算密集型計算機視覺程序的一個很好的選擇。
6.SimpleCV
SimpleCV也是一個用於構建計算機視覺應用程序的開源框架。有了它,你就可以訪問幾個高性能的計算機視覺庫,如OpenCV,而且不需要先學習了解位深度、文件格式、顏色空間等。它的學習曲線大大小於OpenCV,正如它們的口號所說「計算機視覺變得簡單」。
7.Mahotas
Mahotas是另一個計算機視覺和圖像處理的Python庫。它包括了傳統的圖像處理功能例如濾波和形態學操作以及更現代的計算機視覺功能用於特徵計算,包括興趣點檢測和局部描述符。該介面是Python語言,適合於快速開發,但是演算法是用C語言實現的,並根據速度進行了調優。Mahotas庫速度快,代碼簡潔,甚至具有最小的依賴性。
8.SimpleITK
ITK或者Insight Segmentation and Registration
Toolkit是一個開源的跨平台系統,為開發人員提供了一套廣泛的圖像分析軟體工具
。其中,SimpleITK是建立在ITK之上的簡化層,旨在促進其在快速原型設計、教育、解釋語言中的應用。SimpleITK是一個圖像分析工具包,包含大量支持一般過濾操作、圖像分割和匹配的組件。SimpleITK本身是用C++寫的,但是對於包括Python以內的大部分編程語言都是可用的。
9.pgmagick
pgmagick是GraphicsMagick庫的一個基於python的包裝。GraphicsMagick圖像處理系統有時被稱為圖像處理的瑞士軍刀。它提供了一個具有強大且高效的工具和庫集合,支持以88種主要格式讀取、寫入和操作圖像。
10.Pycairo
Pycairo是圖像處理庫cairo的一組Python捆綁。Cairo是一個用於繪制矢量圖形的2D圖形庫。矢量圖形很有趣,因為它們在調整大小或轉換時不會失去清晰度。Pycairo是cairo的一組綁定,可用於從Python調用cairo命令

⑷ python怎麼用PIL模塊處理BMP圖像 二值化

Pillow 提供了一個 .load() 方法,用來處理像素。圖片嘛,當然是二維的,有寬和高的。

pixels = image.load()
for x in ramge(image.width):
for y in range(image.height):
pixsels[x, y] = 255 if pixsels[x, y] > 125 else 0

當然了,只是最簡單的二值化的話,直接 image.convert('1') 就可以了 :-)

閱讀全文

與python切片遍歷像素相關的資料

熱點內容
javaweb系統設計 瀏覽:374
假如給我三天光明pdf 瀏覽:761
小米文件夾顯示私密文件 瀏覽:760
易輯編譯sci科研 瀏覽:449
當代程序員的日常生活 瀏覽:649
湖北黃石dns伺服器雲主機 瀏覽:581
奇異博士是個什麼app 瀏覽:259
單片機數碼管閃爍 瀏覽:953
有什麼閱讀小說免費的app 瀏覽:661
華潤電力是個什麼app 瀏覽:372
java與jni線程 瀏覽:202
c語言哈夫曼編碼壓縮 瀏覽:27
單片機零基礎入門 瀏覽:437
千鋒python3基礎視頻 瀏覽:578
linuxintel程序 瀏覽:977
光遇登陸伺服器連接失敗什麼意思 瀏覽:767
jd檢測手機新老介面源碼 瀏覽:126
java調用interface 瀏覽:1
解決點面之間是否存在聯系的演算法 瀏覽:274
如何架構雲伺服器 瀏覽:397