如何使用OpenCV转换同一图像中的圆形裁剪区域?

问题描述 投票:0回答:2

原始图像

enter image description here

预期输出。

enter image description here

我正在使用此代码将特定部分转换为同一图像,但输出未更改,

import numpy as np
import cv2 as cv

img = cv.imread('eye0.jpg', 0)
rows, cols = img.shape

roi = img[200: 300, 360: 450]

M = np.float32([[1, 0, 100], [0, 1, 50]])
dst = cv.warpAffine(roi, M, roi.shape)

cv.imshow('img', img)
cv.imshow('img', dst)
cv.waitKey(0)
cv.destroyAllWindows()

我看不到原始图像的任何变化。我该怎么办?此外,作为一个openCV新手,我想知道在这里应该使用/探索哪个功能来达到目的?

python opencv translate-animation
2个回答
1
投票

Copy()功能可以代替warpAffine()帮助您。您还可以检查here

这里是输出和代码:

enter image description here

import numpy as np
import cv2 as cv

img = cv.imread('eye.jpg', 1)
#rows, cols = img.shape

roi = img[80: 100, 140: 160]

img2 = img.copy()

img2[95:115, 140:160]=roi

cv.imshow('img', img)
cv.imshow('imaag', img2)
cv.waitKey(0)
cv.destroyAllWindows()

0
投票

output

import numpy as np
import cv2 as cv

img = cv.imread('eye.jpg')
roi = img[78: 100, 130: 160]
img[98:120,150:180]=roi
cv.imwrite("newimage.jpg",img)
cv.imshow('img', img)
cv.imshow('img1',roi)
cv.waitKey(0)
cv.destroyAllWindows()
© www.soinside.com 2019 - 2024. All rights reserved.