AMOLED Demura 烧录图像控制屏幕灯珠方式
烧录图像控制屏幕灯珠方式
实验流程:
- 相机拍图;
- 算法处理:定位、亮度提取、灰阶补偿
{补偿:1、虚拟补偿,生成烧录图片… 2、烧录补偿,根据亮度提取的结果,生成hex; - 补偿后生成补偿烧录图片;
- 把烧录图像烧进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 烧录图像控制屏幕灯珠方式相关推荐
- python用渐变色画圆_利用python控制Autocad:pyautocad方式
发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...
- python控制autocad_利用python控制Autocad:pyautocad方式
发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...
- OpenCV学习笔记(二):3种常用访问图像中像素的方式
OpenCV学习笔记(二):3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace ...
- autocad支持python吗_利用python控制Autocad:pyautocad方式
发现pyautocad模块:可以用python控制autocad的包.今天把文档中的重点内容摘录出来,以后绘图.计算大工程量.或者识别施工图的时候时候也许可以用到. 一.连接cad pyautocad ...
- BLDC 120度方波控制方案 调制方式包含单极性和双极性,反电动势过零点AD采样
BLDC 120度方波控制方案 调制方式包含单极性和双极性,反电动势过零点AD采样 :68300655567598504MCTianci
- Python保存图像的几种方式
记录读取和保存图像的几种方式 1.读取图片 1.1.使用cv2读取图片,注意:opencv打开路径中不能有中文!!! img = cv2.imread(img_path+'/'+name) 1.2.使 ...
- 【深度学习】RGB图像的内存排列方式及HWC和CHW格式解析
目录 摘要 一.RGB图像的内存排列方式 二.HWC格式和CHW格式 HWC格式 CHW格式 三.HWC和CHW格式的关系 总结 摘要 RGB图像是计算机视觉和图像处理领域中最为常见的图像格式之一,而 ...
- Unity控制角色移动方式
Unity控制角色移动方式* 动态"是游戏最基本的特性之一,游戏只有动起来才能吸引人.今天主要和大家分享一下我平时通过unity控制主角移动的方式. 1 直接更改角色的transform.p ...
- 如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种
[RMAN]如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种? 真题1.如果控制文件损坏那么如何恢复?恢复控制文件的方式有哪几种? 答案:如果控制文件有多个,而只损坏了单个控制文件,那么只需要 ...
最新文章
- 在ubuntu 14.04 64bit上安装酷我音乐盒Linux客户端kwplayer
- 【C#串口编程计划】如何避免关闭串口时软件死锁
- SQL查询前10条记录(SqlServer/mysql/oracle)[语法分析]
- pstack命令学习
- 我在德国做SAP CRM One Order redesign工作的心得
- android 7.1 apk的systemuid和系统应用Setting相同导致开机找不到库的问题
- linux下载pycharm_django开发-使用pycharm进行远程开发
- 【英语学习】4000 Words 【V1】【U01】The Lion and the Rabbit
- 黑苹果系统引导工具正确安装步骤
- SSCI写作--期刊检索和基本介绍
- 91 全能地图下载器和 bigemap地图下载器哪个好用?
- BP反向传播算法推导
- python声音报警_python:基于tkinter打造的股票实时监控声音报警器! 自动监控,声音警报...
- 概要设计说明书的书写
- 从《Java核心编程》纵览Java全貌
- archlinux 安装xorg
- 再批国标数学教材的微分定义
- latex 分页_latex 排版 首页不会换页
- java实现第七届蓝桥杯交换瓶子
- from表单点击submit提交后没有反应