基于opencv

#include <opencv2/opencv.hpp>using namespace cv;using namespace std;Mat scaleGray(const Mat& inputGray){Mat outputGray(inputGray.size(), CV_8U);unsigned char grayValue, maxValue = 1;for (int y = 0; y < inputGray.rows; y++)for (int x = 0; x < inputGray.cols; x++){grayValue = inputGray.at<uchar>(y, x);maxValue = max(maxValue, grayValue);}float scale = 255.0 / maxValue;for (int y = 0; y < inputGray.rows; y++)for (int x = 0; x < inputGray.cols; x++){outputGray.at<uchar>(y, x) = static_cast<unsigned char>(inputGray.at<uchar>(y, x) * scale + 0.5);}return outputGray;}Mat gray2pseudocolor(const Mat& scaledGray){Mat outputPseudocolor(scaledGray.size(), CV_8UC3);unsigned char grayValue;for (int y = 0; y < scaledGray.rows; y++)for (int x = 0; x < scaledGray.cols; x++){grayValue = scaledGray.at<uchar>(y, x);Vec3b& pixel = outputPseudocolor.at<Vec3b>(y, x);pixel[0] = abs(255 - grayValue);pixel[1] = abs(127 - grayValue);pixel[2] = abs(0 - grayValue);}return outputPseudocolor;}/** color    R   G   B   gray* red      255 0   0   255* orange   255 127 0   204* yellow   255 255 0   153* green    0   255 0   102* cyan     0   255 255 51* blue     0   0   255 0**/Mat gray2rainbow(const Mat& scaledGray){Mat outputRainbow(scaledGray.size(), CV_8UC3);unsigned char grayValue;for (int y = 0; y < scaledGray.rows; y++)for (int x = 0; x < scaledGray.cols; x++){grayValue = scaledGray.at<uchar>(y, x);Vec3b& pixel = outputRainbow.at<Vec3b>(y, x);if (grayValue <= 51){pixel[0] = 255;pixel[1] = grayValue * 5;pixel[2] = 0;}else if (grayValue <= 102){grayValue -= 51;pixel[0] = 255 - grayValue * 5;pixel[1] = 255;pixel[2] = 0;}else if (grayValue <= 153){grayValue -= 102;pixel[0] = 0;pixel[1] = 255;pixel[2] = grayValue * 5;}else if (grayValue <= 204){grayValue -= 153;pixel[0] = 0;pixel[1] = 255 - static_cast<unsigned char>(grayValue * 128.0 / 51 + 0.5);pixel[2] = 255;}else if (grayValue <= 255){grayValue -= 204;pixel[0] = 0;pixel[1] = 127 - static_cast<unsigned char>(grayValue * 127.0 / 51 + 0.5);pixel[2] = 255;}}return outputRainbow;}int main(){Mat inputGray = imread("F://Visual Studio 2015//Gq_1//Gq_1//03-3.png", 0);Mat scaledGray = scaleGray(inputGray);Mat pseudocolor = gray2pseudocolor(scaledGray);Mat rainbow = gray2rainbow(scaledGray);//imwrite("001.png", scaledGray);//imwrite("002.png", pseudocolor);imwrite("03-4.png", rainbow);return 0;}

 

 

将脑图像转换成伪彩色相关推荐

  1. R语言使用magick包的image_animate函数和image_morph函数创建一个由n个图像组成的序列,逐渐将一个图像转换成另一个图像(sequence of image morph by)

    R语言使用magick包的image_animate函数和image_morph函数创建一个由n个图像组成的序列,逐渐将一个图像转换成另一个图像(Creates a sequence of n ima ...

  2. html在线ocr文字识别源码,如何用OCR文字识别软件把图像转换成HTML

    之前给大家介绍了使用PDF转换成HTML文档首选ABBYY Mac),其实ABBYY FineReader无论Mac版还是Windows版都可以实现这一点,除此之外还可以将图像文件转换成HTML文档, ...

  3. 将有色液体图像转换成透明液体,CMU教机器人准确掌控向杯中倒多少水

    点击上方"迈微AI研习社",选择"星标★"公众号 重磅干货,第一时间送达 转载自:机器之心 后台回复"加群"进入-> CV 微信技术交 ...

  4. #今日论文推荐# 将有色液体图像转换成透明液体,CMU教机器人准确掌控向杯中倒多少水

    #今日论文推荐# 将有色液体图像转换成透明液体,CMU教机器人准确掌控向杯中倒多少水 借助不同风格之间的图像转换,CMU 的研究者教会了机器人理解透明液体. 如果机器人可以倒液体,则可以帮助我们自动完 ...

  5. C语言运行时变成灰色,C语言实现RGB图像转换成灰(Gray)度图像

    以前实现RGB图像转换成灰度图像都是直接调用OpenCV的库函数RGB2GRAY(IplImage* src);最近老板让我们除了读入输出图像实时用OpenCV的函数,其余的最好都是自己写,所以我自己 ...

  6. Python 如何把图像转换成video (avi)格式?

    Python 如何把图像转换成video (avi)格式? import cv2 def image_to_video(image_dir, save_dir, size: tuple, fps=10 ...

  7. 将.mat格式的高光谱图像转换成png或jpg格式

    将.mat格式的高光谱图像转换成png或jpg格式 使用MATLAB打开.mat文件,并读取高光谱图像数据. 如果高光谱图像数据为三维矩阵,将其转置为(宽度,高度,波段数)的形式.这是因为MATLAB ...

  8. 如何用OCR文字识别软件把图像转换成HTML

    2019独角兽企业重金招聘Python工程师标准>>> 之前给大家介绍了使用OCR文字识别软件ABBYY FineReader Mac版将PDF转换成HTML文档(详见PDF转换成H ...

  9. Windows Forms:在C#中将图像转换成灰度图

    Windows Forms:在C#中将图像转换成灰度图 本文翻译自Windows Forms: Convert an image into grayscale in C# 这篇文章向你展示在C# Wi ...

  10. Linux终端上如何将图像转换成 ASCII 艺术

    想在 Linux 终端中做一些有趣的事情吗?把一张普通的图片转换成 ASCII 艺术怎么样?来看一下. 想在 Linux 终端中做一些有趣的事情吗?把一张普通的图片转换成 ASCII 艺术怎么样? 你 ...

最新文章

  1. c++ 数据类型转换笔记
  2. Oracle存储过程(增、删、改)写法
  3. flutter能开发游戏吗_游戏开发者都擅长“打自己的游戏”吗?
  4. Celery分布式任务队列的认识和基本操作
  5. MSMQ消息队列安装
  6. flask中的信号机制
  7. GameJS——Game Library written in JavaScript
  8. 猫癣病毒躲猫猫移师广东东莞月入百万作者
  9. 著名的软件项目开发和生命周期管理软件MKS.Code.Integrity.Enterprise.Edition.v12
  10. Blender学习入门(一)-Blender的下载和插件安装
  11. 集线器和交换机的区别 傻傻分不清
  12. win11系统中文名改英文名(win11、win10修改用户名)超详细图文
  13. outlook 发送邮件
  14. 2021-12-21 理解JS中的shim / polyfill / 垫片概念
  15. java基础-(六)-使用 Spring Initializr 创建springBoot项目
  16. Android 修改系统屏幕亮度
  17. sql查询数据表某列的重复值并计数
  18. 【小程序迁移】微信小程序迁移到支付宝记坑
  19. 2023年武汉理工大学能源动力(085800)考研上岸前辈备考经验指导
  20. python将大文件拆分成多个小文件,同时对各小文件处理以节省时间

热门文章

  1. 短视频转场 10个炫酷故障数字闪变PR转场过渡模板
  2. 深度操作系统20.2.2 发布(国产系统也可以安装安卓应用了)
  3. 软件测试工程师在不同阶段需要掌握的技能
  4. 小米8刷原生安卓系统
  5. SCARA机器人matlab仿真
  6. win7打开win10共享计算机要凭据,win10打开共享文件夹后要求凭证怎么办
  7. h2ouve工具使用_NF8480M5 – BIOS设置
  8. quartz 定时任务不运行问题
  9. Qt编写可视化大屏电子看板系统17-柱状堆积图
  10. 微信浏览器 视频小窗 播放 微信网页