c++/qt-如何把这个图片做成heat map

问题描述

如何把这个图片做成heat map 200C

数值越大越红,数值越小越蓝色,周围有虚化效果.

解决方案

大概的实现了下,虚化效果没做^^

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import javax.imageio.ImageIO;

/**

  • 类DrawHeatImage.java的实现描述:TODO 类实现描述
  • @author broust 2016年4月4日 下午7:27:44
    */
    public class DrawHeatImage {

    /**

    • 绘制热点图
    • @param heatList 热点数量
    • @param colNum 一行布局多少个热点
    • @param gridSize 单元格子的大小--只能绘制正方形
    • @return
      */
      private static BufferedImage drawHeatImage(List heatList int colNum int gridSize) {

      // 计算出图像的尺寸
      int width = colNum * gridSize;
      int height = (int) (heatList.size() / colNum)*gridSize;

      if (heatList.size() % colNum != 0) {
      height += gridSize;
      }

      // 创建bufferedImage
      BufferedImage image = new BufferedImage(width height BufferedImage.TYPE_INT_RGB);
      Graphics2D g2d = image.createGraphics();
      // 底色
      g2d.setColor(Color.white);
      // 整个画布为白色
      g2d.fillRect(0 0 width height);
      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING RenderingHints.VALUE_ANTIALIAS_ON);

      // 开始绘制格子
      for (int i = 0; i < heatList.size(); i++) {
      g2d.setColor(getColor(heatList.get(i)));
      int lineN = i / colNum;
      int colN = i % colNum;
      int x = colN * gridSize;
      int y = lineN * gridSize;
      g2d.fillRect(x y gridSize gridSize);
      }
      g2d.dispose();
      return image;
      }

    /**

    • 获取颜色
    • @param rate [0-255]
    • @return/private static Color getColor(int rate) {/*
      • 红色:(25500) --->蓝色:(00255) [红,黄,蓝]*/rate = rate < 0 ? 0 : rate > 255 ? 255 : rate;return new Color(rate 0 255 - rate);}

    /**

    • 保存到文件
    • @param filePath
    • @param image
    • @throws IOException*/private static void storeToFile(String filePath BufferedImage image) throws IOException {File file = new File(filePath);ImageIO.write(imageJPEG"" file);}

    /**

    • 测试数据
    • @param nums
    • @return*/private static List testData(int nums) {List list = new ArrayList();Random r = new Random();for (int i = 0; i < nums; i++) { list.add(r.nextInt(nums));}return list;}

    public static void main(String[] args) throws IOException {
    List heatDataList = testData(100);
    String filePath = ""/Users/broust/tmp/xx/heatImage.jpg"";
    storeToFile(filePath drawHeatImage(heatDataList 10 20));
    }
    }

解决方案二:

重新写了一个,这个效果行不行?

代码在 http://blog.csdn.net/broust/article/details/51099027

时间: 2024-10-29 08:40:07

c++/qt-如何把这个图片做成heat map的相关文章

把相片,图片做成Flash

核心提示:把相片,图片做成Flash. 每次和朋友出去玩,都会拍摄很多照片.当和朋友分享这些照片时还要仔细挑选,然后打包分享给朋友.感觉挺麻烦的,后面想到把这些照片做成电子相册,要分享是把电子相册发出去就可以了. 今天就用<Wondershare Flash Gallery Factory>制作成电子相册. 软件介绍:这是一个专业的 Flash 相册制作工具,可以帮助你制作出活泼生动的 Flash 幻灯.你可以在几分钟内把你的照片.音乐制作成漂亮的 Flash 幻灯.软件内置多种转换效果和主题

word中如何把喜欢的图片做成封面 word怎么设计封面

  word中如何把喜欢的图片做成封面 1.首先打开word,点击插入选项,选择封面选项. 2.可以清除的看到word2007提供了很多内置的封面形式,这些随便一个形式都比晚上的来的清新脱俗,或者热烈奔放,动感十足.这个时候,我就选一个我喜欢的封面.朝下滚动.选择条纹型. 文档封面设计"> 3.为了减少篇幅,简单操作带过.插入成功后,我们输入标题,副标题,然后你可以根据自己的需要加上你的班级,姓名,书写日期等等相关信息,本人随便写了一些信息,好使例子较为详实.然后更改下你的字体格式和大小,

Fireworks怎么将图片做成gif动图?

  Fireworks怎么将图片做成gif动图?           1.制作第一张小图,这个比较简单,只需设定画布的大小,在画布上写上几个字即可. 2.制作第二张小图.在上图(图1)中,我们注意到右边有一个"帧"的项目,"帧1"对应的图片就是刚制作的第一张小图,"帧1"就是将要做成的gif动画的第一帧.我们接着要做的是gif动画的第二帧,并且在这帧上做一张图片.如下图(图2)所示,点击"新建/重建帧"图标,"帧2&

qt-opencv+Qt,不显示图片

问题描述 opencv+Qt,不显示图片 如图,如果注释掉IplImage 指针之后的代码,则test_image.exe exited with code 0: 如果不注释掉,总会出现test_image.exe exited with code -1073741515,请问是哪方面的原因,是编译opencv不到位,还是什么 解决方案 感觉是因为:栈溢出,系统默认的栈的空间大小是1MB. 解决方法是将需要申请栈内存的局部变量更改为其他类型的变量,以减少对栈的压力.下面推荐三种解决方法: 1.要

photoshop利用滤镜把图片做成烟花图片教程

给各位photoshop软件的使用者们来详细的解析分享一下利用滤镜把图片做成烟花图片的教程. 教程分享: 先看看效果:   打开闪电图层   滤镜-像素化-马赛克   3.滤镜-风格化-照亮边缘     4.复制图层,图像-旋转-顺时针90度   5.混合模式-变暗   6.ctrl+alt+shift+e,盖印图层   7.画圆.   8.滤镜-扭曲-球面化   9.得到如图,混合模式线性减淡   10.亮度不够的话继续复制   11.滤镜-模糊-径像模糊   12.效果不明显的话,继续复制.

[20140218]12c 新特性heat map.txt

[20140218]12c 新特性heat map.txt 12c 新特性,可以记录那些对象经常使用. 它可以在session或者system打开,不过我的测试好像在cdb数据库无效. SCOTT@ztest> @ver BANNER                                                                               CON_ID -----------------------------------------------

网站点击热图(Heat Map)

网站分析通过统计点击流数据及网站产生的其他各类数据,提供各种http://www.aliyun.com/zixun/aggregation/9282.html">数据报表来监控网站的运营状态,为网站的优化和改进提供参考依据.但网站分析能提供的绝不仅有数据,其中点击热图(Heat Map)是对网站分析的一个很好的扩充,目前网上介绍点击热图的文章也比较多,很多网站交互设计师用点击热图来评估用户与网站之间的交互状况从而改善用户体验.这里简单介绍几个点击热图的实现工具以及用我的博客做的点击热图的实

Photoshop把图片做成抽象的万花筒效果

作者介绍的过程非常详细,新建的文件也比较多,初学者操作上要非常细心. 过程:先定义一个正三角形图像,然后拼接成一个六边形,再对接成图案即可.操作上其实有非常简便的方法,1分钟就可以做好,自己可以去摸索. 最终效果 作者没有提供素材,可以用下面的素材! 1.打开想要的素材图片,在图片中裁剪出感兴趣的局部. 2.按照刚才裁剪的图片的像素值,新建一个背景是透明的正方形文件. 3.回到裁剪图片的文件,在背景图层点击右键,选择"复制图层". 4.在复制图层的对话框中选择目标为"未标题-

Windows Movie Maker 怎么将图片做成视频

  1.打开软件 2.然后将需要作为视频的图片和音乐导入 3.导入完成后,右键单击图片然后选择添加到时间线,添加完成后就会出现在下方的时间线上 4.将图片和音乐都按照这个方法添加到时间线上,然后右键单击时间线上的图片,选择视频效果,选择喜欢的效果添加到效果中,然后单击确定,将每个图片都按自己所喜欢的效果添加上 5.添加完成后可以单击右侧视频图框的播放来观看效果,觉得合适保存即可.