导航:首页 > 编程语言 > java搜索图片

java搜索图片

发布时间:2025-06-12 03:12:52

❶ 如何使用java实现屏幕找图功能

测试代码

[java] view plain
public static void main(String[] args) throws Exception {
findImage4FullScreen(ImageCognition.SIM_ACCURATE_VERY);
}

public static void findImage4FullScreen(int sim) throws Exception {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int w = (int) screenSize.getWidth();
int h = 200;

Robot robot = new Robot();
BufferedImage screenImg = robot.createScreenCapture(new Rectangle(0, 0,
w, h));//对屏幕指定范围进行截图,保存到BufferedImage中
OutputStream out = new FileOutputStream("data/images/screen.png");
ImageIO.write(screenImg, "png", out);//将截到的BufferedImage写到本地

InputStream in = new FileInputStream("data/images/search.png");
BufferedImage searchImg = ImageIO.read(in);//将要查找的本地图读到BufferedImage

//图片识别工具类
ImageCognition ic = new ImageCognition();

List<CoordBean> list = ic.imageSearch(screenImg, searchImg, sim);
for (CoordBean coordBean : list) {
System.out.println("找到图片,坐标是" + coordBean.getX() + ","
+ coordBean.getY());

//标注找到的图的位置
Graphics g = screenImg.getGraphics();
g.setColor(Color.BLACK);
g.drawRect(coordBean.getX(), coordBean.getY(),
searchImg.getWidth(), searchImg.getHeight());
g.setFont(new Font(null, Font.BOLD, 20));
g.drawString("←找到的图片在这里",
coordBean.getX() + searchImg.getWidth() + 5,
coordBean.getY() + 10 + searchImg.getHeight() / 2);
out = new FileOutputStream("data/images/result.png");
ImageIO.write(screenImg, "png", out);
}
}

额外的类

CoordBean

package cn.xt.imgCongnition;

public class CoordBean {

private int x;
private int y;

/**
* 获取x坐标
*
* @return x坐标
*/
public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

/**
* 获取y坐标
*
* @return
*/
public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}

}

RgbImageComparerBean

package cn.xt.imgCongnition;

/**
* RGB 相关,图片相似度计算时使用
*
*/
public class RgbImageComparerBean {

/****** 颜色值数组,第一纬度为x坐标,第二纬度为y坐标 ******/
private int colorArray[][];

/*** 是否忽略此点,若为true,则不纳入比较的像素行列。 ***/
private boolean ignorePx[][];

/**** 图片的宽高 ****/
private int imgWidth;
private int imgHeight;

// 图片的像素总数
private int pxCount;

/**
* 获取图像的二维数组组成
*
* @return 图像的二维数组
*/
public int[][] getColorArray() {
return colorArray;
}

/**
* 要对比的像素总数,会自动筛选掉不对比的颜色
*
* @param pxCount
*/
public void setPxCount(int pxCount) {
this.pxCount = pxCount;
}

/**
* 设置颜色二维数组
*
* @param colorArray
* 颜色二维数组,一维为x轴,二维为y轴
*/
public void setColorArray(int[][] colorArray) {
this.colorArray = colorArray;
this.imgWidth = this.colorArray.length;
this.imgHeight = this.colorArray[0].length;
this.pxCount = this.imgWidth * this.imgHeight;
}

/**
* 是否忽略此点,若为true,则不纳入像素比较行列。
*
* @return 具体x,y坐标的那个像素点
*/
public boolean[][] getIgnorePx() {
return ignorePx;
}

/**
* 是否忽略此点,若为true,则不纳入像素比较行列。
*
* @param ignorePx
* 具体x,y坐标的那个像素点
*/
public void setIgnorePx(boolean[][] ignorePx) {
this.ignorePx = ignorePx;
}

/**
* 获取图像的宽度
*
* @return 图像宽度
*/
public int getImgWidth() {
return imgWidth;
}

/**
* 获取图像的高度
*
* @return 图像高度
*/
public int getImgHeight() {
return imgHeight;
}

/**
* 获取图像里像素的总数
*
* @return
*/
public int getPxCount() {
return pxCount;
}

}

❷ 请教如何用Java语言读取jpg图片,并显示

1、获取文件夹的路径 2、得到文件夹中的有图片的名称,可以存到数组或者集合中 3、你再到jsp页面做显示, 4、下面是获取路径和文件名的代码,前台显示的代码自己写 String path = 文件夹路径; String names = ""; try { File f = new File(path)

❸ Java Web AI - 以图搜图

Java Web AI中的以图搜图技术,是一种基于图像识别与相似度匹配的功能,允许用户通过上传图片来搜索与之相似的图片或信息。以下是关于Java Web AI中以图搜图技术的详细解答:

  1. 技术基础

    • 图像识别:以图搜图技术首先需要对图像进行识别,这通常依赖于深度学习模型,特别是卷积神经网络,它们能够提取图像中的关键特征,如边缘、纹理等。
    • 相似度匹配:在特征提取之后,系统需要计算这些特征之间的相似度,以找到与查询图像最相似的图像。这通常涉及到特征向量之间的距离计算,如欧氏距离或余弦相似度等。
  2. 功能流程

    • 图片入库:用户可以将图片上传到系统,系统会对这些图片进行特征提取,并将特征值存入向量数据库中。这个过程包括特征提取和特征入库两个步骤。
    • 图片检索:当用户上传一张查询图片时,系统会再次进行特征提取,并在向量数据库中检索与查询图片特征最相似的图片。检索结果会按照相似度进行排序,并返回给用户。
  3. 应用场景

    • 电子商务:在电商平台上,用户可以通过上传一张图片来搜索与之相似的商品。
    • 社交媒体:在社交媒体上,用户可以利用以图搜图功能来查找包含相同或相似图像的内容。
    • 设计领域:设计师可以使用以图搜图来寻找灵感或相似的设计元素。
  4. 技术优势

    • 高效性:深度学习模型在特征提取和相似度计算方面的高效性,使得以图搜图技术能够快速返回搜索结果。
    • 准确性:通过提取图像的高维特征并进行精细的相似度计算,以图搜图技术能够提供准确的搜索结果。
  5. 实现方式

    • 在Java Web AI中,以图搜图功能可以通过集成深度学习框架和向量数据库来实现。这些框架和数据库提供了强大的图像处理和相似度计算功能,能够满足以图搜图技术的需求。

❹ JAVA怎么把图片从数据库中调用出来

1 一半图片都是把路径存放在数据库的 到时候取出路径就可以了
2 在数据库有blob格式可以存放图片 以二进制流的方式取出来

<% String zjbm = CheckParam(request.getParameter("zjbm"),""); String zpSql = "select zp from tjjryxxx where sfzh = '"+zjbm+"'"; out.clear(); response.setContentType("image/jpeg"); response.setHeader("Content-Transfer-Encoding","base64"); Connection connection = null; PreparedStatement ps = null; ResultSet rs = null; Blob blob =null; byte[] data = null; try{ connection =getConn(); ps = connection.prepareStatement(zpSql); rs = ps.executeQuery(); while(rs.next()){ blob = (Blob)rs.getBlob("zp"); long nlen = blob.length(); int nsize = (int) nlen; data = blob.getBytes(1,nsize); OutputStream out1 = response.getOutputStream(); BufferedOutputStream bos =null; bos = new BufferedOutputStream(out1); bos.write(data,0,data.length); bos.close(); rs.close(); } }catch(Exception e){ e.printStackTrace(); } %>

阅读全文

与java搜索图片相关的资料

热点内容
八卦汇总421页pdf 浏览:286
android应用自动升级 浏览:747
远程屏幕监控源码 浏览:569
云服务器的ip怎么查询 浏览:155
大学c语言搜题app在哪里下载 浏览:109
pdf文档被保护 浏览:345
有没有电脑公司网站源码下载 浏览:230
智能电视哪个app看电影好用 浏览:224
微信页面源码下载 浏览:959
怎么看5代喷头加密 浏览:359
linux查找文件并删除文件 浏览:872
单片机里的编程软件 浏览:164
钻石投票网站源码 浏览:973
cidrphp 浏览:882
android测试用例文档 浏览:822
单片机素数 浏览:840
怎么在桌面上发送文件夹 浏览:761
海外贷款源码 浏览:719
北航单片机实验 浏览:801
私有云服务器在哪里 浏览:941