Python Opencv在VSCode中实现RGB到BGR图像转换
最近利用ESP32外接驱动为ST7789、分辨率为320*240的2寸TFT显示屏,发现颜色出现了混乱,让其显示一张RGB图片实际显示为BGR图片:
原RGB图 实际显示图(BGR)
网上查阅各种办法改了各种头文件还是解决不了,调什么颜色翻转参数、宏定义什么TFT_BGR之类的都不行,估计和opencv一样读取图片时是由低字节向高字节读导致的,其默认的像素排列为BGR。/真的抽象.jpg /真的苦涩.jpg
索性抽象就按抽象着来,咱自己把图片转换为BGR像素排列的不就行了!
基于电脑上已经安装了vscode,而且安装了python环境,网上查阅opencv可以使用自带的函数将图片的R色和B色调转,Win+R cmd输入pip install opencv-python直接安装opencv的环境就行:
1、安装vscode Visual Studio Code – Code Editing. Redefined
2、安装python 超详细的Python安装和环境搭建教程_python安装教程-CSDN博客
3、安装opencv环境 Win+R cmd输入pip install opencv-python
等待几分钟,安装完成后会打印出Successfully installed opencv-python-xxx的信息,然后命令行输入python,再输入import cv2未报错则为安装成功。
利用vscode运行demo.py程序:
安装好的opencv会被保存在python安装文件夹中Lib文件夹下面的site-packages文件夹中。
python安装的文件夹位置:Win+R cmd输入python,输入import sys,再输入sys.path会打印出python安装文件夹的位置,大概为C:\Users\lenovo\AppData\Local\Programs\Python\Python311
然后在site-packages文件夹下找到cv2文件夹,找到cv2.pyd程序,复制一份拷贝到桌面上的一个新建文件夹里,新建文件夹用英文命名。
在这个文件夹里再新建一个txt文本文件,重命名为demo.py,用记事本打开后输入以下代码然后保存,同时也把你待转换的RGB图放进文件夹中:
import numpy as np
import cv2
img = cv2.imread("picture.jpg")
img_bgr = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
cv2.namedWindow('img_bgr',cv2.WINDOW_AUTOSIZE)
cv2.imshow('imgwindow',img_bgr)
cv2.imwrite('img.jpg',img_bgr)
cv2.waitKey(0)
picture.jpg替换为你的图片名,cv2.imread为读取图片,cv2.cvtColor带cv2.COLOR_RGB2BGR参数为转为BGR图片,cv2.imwrite为保存图片,cv2.waitKey()为等待按键。
然后打开vscode,左上角 文件—打开文件夹—选择桌面上刚才新建的文件夹,然后点右上角的三角图标(运行python文件)
最终在弹出的窗口imgwindow中会显示转换后的BGR图片,并且在文件夹下会生成名为img.jpg的BGR图片。
之后将该BGR图片再用TFT屏幕显示,不出所料显示正常了。。。
作者:5+7_