gpt4 book ai didi

python - 将图像拼接在一起 Opencv -Python

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:54 27 4
gpt4 key购买 nike

我的程序接收图像并根据比例参数将图像裁剪成单独的图像,例如scale = 3 产生 9 个大小相同的图像。然后我计算出每个裁剪图像的平均 rgb,并将图像中的所有像素值设置为等于平均 rgb 值。

我想知道如何将裁剪后的图像拼接在一起以输出一张图像?在这种情况下,这将是九种不同颜色的网格。

这是我的代码:

# import packages
import numpy as np
import cv2
import dateutil
import llist
from matplotlib import pyplot as plt
import argparse

#Read in image
img = cv2.imread('images/0021.jpg')

scale = 3
#Get x and y components of image
y_len,x_len,_ = img.shape

mean_values = []
for y in range(scale):
for x in range(scale):
#Crop image 3*3 windows
cropped_img=img[(y*y_len)/scale:((y+1)*y_len)/scale,
(x*x_len)/scale:((x+1)*x_len)/scale]

mean_val=cv2.mean(cropped_img)
mean_val=mean_val[:3]
#Set cropped img pixels equal to mean RGB
cropped_img[:,:,:] = mean_val

cv2.imshow('cropped',cropped_img)
cv2.waitKey(0)

#Print mean_values array
#mean_values.append([mean_val])
#mean_values=np.asarray(mean_values)
#print mean_values.reshape(3,3,3)

就目前而言,嵌套的 for 循环遍历图像并按照我想要将它们拼接在一起的顺序输出图像(只是一种颜色的 block ),但我不确定如何实现这一点。

最佳答案

我不知道 OpenCV 中是否存在这样的东西,但在 ImageMagick 中,您可以简单地将图像的大小调整为平铺大小(这将隐含地平均像素)并将图像重新缩放回原始大小没有插值的大小 - 也称为最近邻重采样。像这样:

enter image description here

# Get original width and height
identify -format "%wx%h" face1.jpg
500x529

# Resize down to, say 10x10 and then back up to the original size
convert face1.jpg -resize 10x10! -scale "${geom}"! out.jpg

enter image description here

根据您的原件,3x3 变为:

convert face1.jpg -resize 3x3! -scale "${geom}"! out.jpg

enter image description here

3x5 变成:

convert face1.jpg -resize 3x5! -scale "${geom}"! out.jpg

enter image description here

关于python - 将图像拼接在一起 Opencv -Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813860/

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