gpt4 book ai didi

python - OpenCV - 如何通过斜线将图像分成两个区域?

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:04 26 4
gpt4 key购买 nike

我正在使用 HoughLinesP 来检测图像中的线条。结果是一条斜线。我想在线下区域做一些操作(腐 eclipse 和扩张)。

所以我想问一下如何通过这条线将图像分割成两个区域(region0和region1)或者不分割图像处理region1。

例如图片大小为200*100,行数为(0, 50, 200, 75)

如果线是水平或垂直的,我可以使用 image[y:y+h, x:x+w] 在我得到 rect(x, y, w , h) 裁剪面积。但是我不知道斜线。

Sample Image

最佳答案

您可以使用slice-op 来获取矩形,使用mask-op 来获取非矩形 > 像这样。

enter image description here

基本步骤是:

  1. 定义一个空图像。
  2. 定义角点。
  3. 在空图中绘制轮廓(带填充)
  4. 做面膜手术

我的Python3-OpenCV3.3代码:

## Step 1-3: drawContours in empty image
mask = np.zeros((100,200), np.uint8)
pts = np.array([[0,0],[0,50],[199,75],[199,0]])
_=cv2.drawContours(mask, np.int32([pts]),0, 255, -1)

## Step 4: do mask-op
img1 = img.copy()
img2 = img.copy()
img1[mask==0] = 0
img2[mask>0] = 0

## Write
cv2.imwrite("mask.png", mask)
cv2.imwrite("img1.png", img1)
cv2.imwrite("img2.png", img2)

图片和结果如下:

源代码和掩码:

src mask

结果:

res1 res2

关于python - OpenCV - 如何通过斜线将图像分成两个区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com