日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python检测图像中的矩形_检测图像中的矩形并裁剪

發布時間:2024/3/26 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python检测图像中的矩形_检测图像中的矩形并裁剪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果你努力的話,那是件容易的事。這是我的輸出(圖像和它的一小部分)

我做了什么?先調整圖像的大小,因為它在我的屏幕上太大了

侵蝕、擴張以去除小點并加厚線條

閾值圖像

洪水泛濫,從正確的點開始

倒洪

找到輪廓并一次畫一個,其范圍約為

矩形上的區域。對于我調整大小的(500x500)圖像,我將

輪廓在500到2500之間(無論如何都是反復試驗)。

找到邊界矩形并從主圖像中裁剪該遮罩。

然后用正確的名字保存那篇文章-我沒有這么做。

也許,有一個更簡單的方法,但我喜歡這個。不放代碼是因為

我弄得很笨拙。如果你還需要的話會放進去的。

下面是每次找到輪廓時遮罩的外觀

代碼:import cv2;

import numpy as np;

# Run the code with the image name, keep pressing space bar

# Change the kernel, iterations, Contour Area, position accordingly

# These values work for your present image

img = cv2.imread("your_image.jpg", 0);

h, w = img.shape[:2]

kernel = np.ones((15,15),np.uint8)

e = cv2.erode(img,kernel,iterations = 2)

d = cv2.dilate(e,kernel,iterations = 1)

ret, th = cv2.threshold(d, 150, 255, cv2.THRESH_BINARY_INV)

mask = np.zeros((h+2, w+2), np.uint8)

cv2.floodFill(th, mask, (200,200), 255); # position = (200,200)

out = cv2.bitwise_not(th)

out= cv2.dilate(out,kernel,iterations = 3)

cnt, h = cv2.findContours(out,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

for i in range(len(cnt)):

area = cv2.contourArea(cnt[i])

if(area>10000 and area<100000):

mask = np.zeros_like(img)

cv2.drawContours(mask, cnt, i, 255, -1)

x,y,w,h = cv2.boundingRect(cnt[i])

crop= img[ y:h+y,x:w+x]

cv2.imshow("snip",crop )

if(cv2.waitKey(0))==27:break

cv2.destroyAllWindows()

總結

以上是生活随笔為你收集整理的python检测图像中的矩形_检测图像中的矩形并裁剪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。