烧录图像控制屏幕灯珠方式

实验流程:

  1. 相机拍图;
  2. 算法处理:定位、亮度提取、灰阶补偿
    {补偿:1、虚拟补偿,生成烧录图片… 2、烧录补偿,根据亮度提取的结果,生成hex;
  3. 补偿后生成补偿烧录图片;
  4. 把烧录图像烧进PG,点屏显示,看效果;

单个灯珠点亮

// 20200710.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>using namespace cv;
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{int wid = 2436, het = 752;#pragma region [单独点点亮]Mat point = Mat(wid, het, CV_8UC3, Scalar(0, 0, 0));int m = 0, n = 0, k = 0,i, j;//(m,n)是PG图像上的像素点,k是RGB三通道中的某一通道;//(i,j)是屏幕灯珠位置;//若要点亮屏幕上某一个灯珠;cin >> i >> j;m = i;n = j / 3;k = 2 - j % 3;point.at<Vec3b>(m, n)[k] = 255;imwrite("D:\\资料\\point.bmp", point);#pragma endregionreturn 0;
}

生成PG图像 RGB三通道

// 20200709.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <iostream>using namespace cv;
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{int wid = 2436, het = 752;Mat W = Mat(wid, het, CV_8UC3, Scalar(255, 255, 255));Mat R = Mat(wid, het, CV_8UC3, Scalar(0, 0, 0));Mat G = Mat(wid, het, CV_8UC3, Scalar(0, 0, 0));Mat B = Mat(wid, het, CV_8UC3, Scalar(0, 0, 0));/*烧录(PG)图像的一个像素为(B,G,R)三通道,控制三个灯珠;(1)BGR BGR BGR BGR  --->R B R B R BG G G G G G   BGR BGR BGR BGR  --->B R B R B RG G G G G G(2)对应位置表达式PG图像的像素位置(m,n),RGB位置为K对应的屏幕灯珠的位置(i,j)m=i3n+2-k=j反之,n=j/3 k=2-j%3注:OpenCV中为三通道为BGR,生成PG图像时时注意!*/#pragma region [白色区域]//白色背景imwrite("D:\\资料\\W.bmp", W);#pragma endregion#pragma region [红色区域]//红色背景for (int i = 0; i < wid; i++){if (!(i % 2)){int j = 0;while (j < het){R.at<Vec3b>(i, j)[2] = 255;j += 4;}j = 1;while (j < het){R.at<Vec3b>(i, j)[1] = 255;j += 4;}j = 2;while (j < het){R.at<Vec3b>(i, j)[0] = 255;j += 4;}}if (i % 2){int j = 0;while (j < het){R.at<Vec3b>(i, j)[0] = 255;j += 4;}j = 2;while (j < het){R.at<Vec3b>(i, j)[2] = 255;j += 4;}j = 3;while (j < het){R.at<Vec3b>(i, j)[1] = 255;j += 4;}}}imwrite("D:\\资料\\R.bmp", R);#pragma endregion#pragma region [绿色区域]//绿色背景for (int i = 0; i < wid; i++){int j = 0;while (j < het){G.at<Vec3b>(i, j)[1] = 255;j += 2;}j = 1;while (j < het){G.at<Vec3b>(i, j)[0] = 255;G.at<Vec3b>(i, j)[2] = 255;j += 2;}}imwrite("D:\\资料\\G.bmp", G);#pragma endregion#pragma region [蓝色区域]//蓝色背景for (int i = 0; i < wid; i++){if (i % 2){int j = 0;while (j < het){B.at<Vec3b>(i, j)[2] = 255;j += 4;}j = 1;while (j < het){B.at<Vec3b>(i, j)[1] = 255;j += 4;}j = 2;while (j < het){B.at<Vec3b>(i, j)[0] = 255;j += 4;}}if (!(i % 2)){int j = 0;while (j < het){B.at<Vec3b>(i, j)[0] = 255;j += 4;}j = 2;while (j < het){B.at<Vec3b>(i, j)[2] = 255;j += 4;}j = 3;while (j < het){B.at<Vec3b>(i, j)[1] = 255;j += 4;}}}imwrite("D:\\资料\\B.bmp", B);#pragma endregionwaitKey(0);return 0;
}

AMOLED Demura 烧录图像控制屏幕灯珠方式相关推荐

  1. python用渐变色画圆_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  2. python控制autocad_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  3. OpenCV学习笔记(二):3种常用访问图像中像素的方式

    OpenCV学习笔记(二):3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace ...

  4. autocad支持python吗_利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...

  5. BLDC 120度方波控制方案 调制方式包含单极性和双极性,反电动势过零点AD采样

    BLDC 120度方波控制方案 调制方式包含单极性和双极性,反电动势过零点AD采样 :68300655567598504MCTianci

  6. Python保存图像的几种方式

    记录读取和保存图像的几种方式 1.读取图片 1.1.使用cv2读取图片,注意:opencv打开路径中不能有中文!!! img = cv2.imread(img_path+'/'+name) 1.2.使 ...

  7. 【深度学习】RGB图像的内存排列方式及HWC和CHW格式解析

    目录 摘要 一.RGB图像的内存排列方式 二.HWC格式和CHW格式 HWC格式 CHW格式 三.HWC和CHW格式的关系 总结 摘要 RGB图像是计算机视觉和图像处理领域中最为常见的图像格式之一,而 ...

  8. Unity控制角色移动方式

    Unity控制角色移动方式* 动态"是游戏最基本的特性之一,游戏只有动起来才能吸引人.今天主要和大家分享一下我平时通过unity控制主角移动的方式. 1 直接更改角色的transform.p ...

  9. 如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种

    [RMAN]如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种? 真题1.如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种? 答案:如果控制文件有多个,而只损坏了单个控制文件,那么只需要 ...

最新文章

  1. 在ubuntu 14.04 64bit上安装酷我音乐盒Linux客户端kwplayer
  2. 【C#串口编程计划】如何避免关闭串口时软件死锁
  3. SQL查询前10条记录(SqlServer/mysql/oracle)[语法分析]
  4. pstack命令学习
  5. 我在德国做SAP CRM One Order redesign工作的心得
  6. android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题
  7. linux下载pycharm_django开发-使用pycharm进行远程开发
  8. 【英语学习】4000 Words 【V1】【U01】The Lion and the Rabbit
  9. 黑苹果系统引导工具正确安装步骤
  10. SSCI写作--期刊检索和基本介绍
  11. 91 全能地图下载器和 bigemap地图下载器哪个好用?
  12. BP反向传播算法推导
  13. python声音报警_python:基于tkinter打造的股票实时监控声音报警器! 自动监控,声音警报...
  14. 概要设计说明书的书写
  15. 从《Java核心编程》纵览Java全貌
  16. archlinux 安装xorg
  17. 再批国标数学教材的微分定义
  18. latex 分页_latex 排版 首页不会换页
  19. java实现第七届蓝桥杯交换瓶子
  20. from表单点击submit提交后没有反应

热门文章

  1. stata面板数据gmm回归_动态面板数据的System-GMM回归分析步骤
  2. 浏览器F12功能键介绍(前端)
  3. 【授权与认证】Dex 与 LDAP、OIDC
  4. 【php】保留小数点后2位的方法
  5. java 打印到文件_Java I / O:如何将循环输出打印到一个文件...
  6. 家里无线网络重置的办法
  7. 如何让你的php服务器固若金汤
  8. python之cookie, cookiejar 模拟登录绕过验证
  9. Windows下使用批处理进行对拍
  10. 网站Tags标签优化技巧