gpt4 book ai didi

python裁剪并保存不规则图像或裁剪并将其放在中心而不调整大小

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

我正在为需要制作模板的图像比较工作。

当前图片:

original image

我可以给所需的图像上色,但不能裁剪所需的图像,给图像上色的代码如下:

import numpy as np
import cv2

img = cv2.imread('./org.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

ret,thresh = cv2.threshold(gray,127,255,1)

contours,h = cv2.findContours(thresh,1,2)

for cnt in contours:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
print (len(approx))
if len(approx)==5:
# print "pentagon"
cv2.drawContours(img,[cnt],0,255,-1)
elif len(approx)==3:
# print "triangle"
cv2.drawContours(img,[cnt],0,(0,255,0),-1)
elif len(approx)==4:
# print "square"
cv2.drawContours(img,[cnt],0,(0,0,255),-1)
elif len(approx) == 9:
# print "half-circle"
cv2.drawContours(img,[cnt],0,(255,255,0),-1)
elif len(approx) > 15:
# print "circle"
cv2.drawContours(img,[cnt],0,(0,255,255),-1)

cv2.imwrite('./test/Image_crop.jpg', img)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

output image

  1. 我想裁剪颜色为红色的图像。
  2. 保存尺寸不规则的裁剪图像。
  3. 除了 cv2.drawContours
  4. 之外,还有其他方法可以获得所需的图像吗?

问题取决于:Python libraries failed for detailed image comparison between two shifted images captured using webcam

使用 python 帮助我解决问题。

最佳答案

您可以从轮廓创建一个蒙版,并使用此蒙版从原始图像复制,然后您可以保存图像。

cv::Mat dst;
originalIamge.copyTo(dst, mask);
cv::imwite("path/where/to/save.jpg", dst);

更新:更详细

根据计数器 cv::boundingRect(contour) 创建边界框

cv::Rect rect = cv::boundingRect(contour);

现在您可以使用此矩形从原始图像中获取子垫

cv::Mat roi = img(rect);

然后创建一个与ROI相同大小的新Mat

cv::Mat dst = cv::Mat::create(roi.size(), CV_8UC3);

并创建一个蒙版

cv::Mat mask = cv::Mat::zeros(img.size(), CV_8UC1);
cv::drawContours(mask, contours, 0, cv::Scalar(255), cv::FILLED);
mask = mask(roi);

现在您可以使用蒙版复制图像的所需部分

roi .copyTo(dst, mask);

并保存

cv::imwite("path/where/to/save.jpg", dst);

关于python裁剪并保存不规则图像或裁剪并将其放在中心而不调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54703660/

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