拼图

2024-03-23 13:32
文章标签 拼图

本文主要是介绍拼图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import cv2
import numpy as np

def stackImages(scale,imgArray):
rows = len(imgArray)
cols = len(imgArray[0])
# & 输出一个 rows * cols 的矩阵(imgArray)
print(rows,cols)
# & 判断imgArray[0] 是不是一个list
rowsAvailable = isinstance(imgArray[0], list)
# & imgArray[][] 是什么意思呢?
# & imgArray[0][0]就是指[0,0]的那个图片(我们把图片集分为二维矩阵,第一行、第一列的那个就是第一个图片)
# & 而shape[1]就是width,shape[0]是height,shape[2]是
width = imgArray[0][0].shape[1]
height = imgArray[0][0].shape[0]

# & 例如,我们可以展示一下是什么含义
# cv2.imshow("img", imgArray[0][1])if rowsAvailable:for x in range (0, rows):for y in range(0, cols):# & 判断图像与后面那个图像的形状是否一致,若一致则进行等比例放缩;否则,先resize为一致,后进行放缩if imgArray[x][y].shape[:2] == imgArray[0][0].shape [:2]:imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)else:imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]), None, scale, scale)# & 如果是灰度图,则变成RGB图像(为了弄成一样的图像)if len(imgArray[x][y].shape) == 2: imgArray[x][y]= cv2.cvtColor( imgArray[x][y], cv2.COLOR_GRAY2BGR)# & 设置零矩阵imageBlank = np.zeros((height, width, 3), np.uint8)hor = [imageBlank]*rowshor_con = [imageBlank]*rowsfor x in range(0, rows):hor[x] = np.hstack(imgArray[x])ver = np.vstack(hor)
# & 如果不是一组照片,则仅仅进行放缩 or 灰度转化为RGB
else:for x in range(0, rows):if imgArray[x].shape[:2] == imgArray[0].shape[:2]:imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)else:imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None,scale, scale)if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)hor= np.hstack(imgArray)ver = hor
return ver

img = cv2.imread(‘default.png’)
grayimg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
blurimg = cv2.GaussianBlur(grayimg,(3,3),0)
canny = cv2.Canny(blurimg,50,100)
stackimg = stackImages(0.6,([img,grayimg,blurimg],
[canny,grayimg,blurimg]))
contours,hierarchy = cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

cv2.imshow(‘stack’,stackimg)
cv2.waitKey(0)

这篇关于拼图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838449

相关文章

java拼图小游戏项目

创建一个Java拼图小游戏是一个有趣且富有教育意义的项目,可以锻炼你的编程技能。以下是开发一个基本拼图游戏可能需要考虑的几个步骤: 项目规划: 确定游戏的基本规则和玩法。设计游戏的界面和用户交互。 环境搭建: 确保你的开发环境中安装了Java Development Kit (JDK)。选择一个合适的IDE(如IntelliJ IDEA、Eclipse等)。 界面设计: 使用Swing或J

基于opencv的相机之拼图功能实现(十)

简介   本篇是对实现图片处理功能:【拼图】实现的记录。 实现原理   点击进入该功能之后,首先会初始化一个背景图片。背景中对应放图片的拼图位置被初始化为空白区域,点击该空白区域,会进入图库中进行图片选择。选好图片之后,将回到本功能的界面;同时被点击的空白区域,将被刚刚选择的图片填充。具体可以参考资料:opencv实现拼图功能 http://blog.csdn.net/u01163

登录/注册- 滑动拼图验证码(IOS/Swift)

本章介绍如何使用ios开发出滑动拼图验证码,分别OC代码和swift代码调用 1.导入项目model文件OC代码(下载完整Demo) 2.放入你需要显示的图片 一:OC调用 #import "ViewController.h"#import "CodeView.h"@interface ViewController () <CodeViewDelegate>@property (n

Halcon 双相机标定与拼图(二)

一、概述 这种标定有两种模式,有一个标定板和多个标定板两种 一个标定板 两个相机的重叠区域比较大,那么我们可以把标定板放到那个重叠区域来统一坐标系,如下 这种是只需要一个标定板,这种是推荐的方式 。 多个标定板 由于要求的视野没有重叠区域,或者重叠的区域太小了,那么我们可以采用这种方式  这个方法就是对上面绿色的部分,两个标定板的关系很重要,会直接影响到最后的图像结果 二、

Halcon 双相机标定与拼图(一)

一、概述 最近有一个多相机标定的项目,大概是4个相机来标定,同一坐标系,然后拼接图,之前双相机标定的时候也大概看看,所以今天就找了那个halcon 案例多学一下,后面我打算做一个对位贴合的东西,类似于VM的那种,最后我想把整个流程封装起来。 思路: 1、做联合标定,每个相机的内参标定,但是外参第二个相机是基于第一相机的 2、获得标定板(只有一个标定板)相机的第一个姿态,作为第一个相机的决定

as3用鼠标拖动图形拼图——灰常简单的教程

话说这种效果在课件里面经常用到,鼠标拖动事件,一个运用很频繁的事件,一起学习学习吧 首先SWF贡献给大家看看效果 感觉咋样,原理其实还蛮简单的,做做试试吧 下面来看看源码吧 package { import flash.display.MovieClip; import flash.display.Sprite; import flas

【教学类-58-05】黑白三角拼图05(2-10宫格,每个宫格随机1张-6张,带空格纸,1页3张黑白3张白卡)

背景需求: 【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸,1页6张黑白,1张6张白卡)-CSDN博客文章浏览阅读582次,点赞16次,收藏3次。【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸,1页6张黑白,1张6张白卡)https://blog.csdn.net/reasonsummer/article/d

【教学类-58-04】黑白三角拼图04(2-10宫格,每个宫格随机1张-6张,带空格纸)

背景需求: 前期制作了黑白三角拼图2*2、3*3、4*4,确定了基本模板,就可以批量制作更多格子数 【教学类-58-01】黑白三角拼图01(2*2宫格)固定256种+随机抽取10张-CSDN博客文章浏览阅读522次,点赞13次,收藏16次。【教学类-58-01】黑白三角拼图01(2*2宫格)固定256种+随机抽取10张https://blog.csdn.net/reasonsummer/a

滑动谜题 leetcode的BFS题目 启发如何写一个拼图编程呢

题目链接 题目要求,要将上面的拼板拼成123450 首先,转换为字符串,为什么要转换为字符串呢,因为处理会变得很简单比如示例一,转化为字符串是12345,目标字符串为123450,只需要证明通过某种交换,可不可以得到目标字符串。 那么如何处理交换呢?观察可以发现,假设0在右下角,那么可以向上,和向左交换;假设0在左上角,那么可以向右,向下交换。总结:0在不同的位置,可以有不同的交换方式,我

【教学类-58-02】黑白三角拼图02(3*3宫格)262144种

背景需求: 已知黑白三角拼图2*2(4个拼图)一共有256种排列方法 【教学类-58-01】黑白三角拼图01(2*2宫格)256种-CSDN博客文章浏览阅读142次,点赞5次,收藏12次。【教学类-58-01】黑白三角拼图01(2*2宫格)256种https://blog.csdn.net/reasonsummer/article/details/139173885?csdn_shar