显示屏的LVDS接收一般有两个port,但是关于两port的定义并没有严格标准约束;
有的厂商按照奇偶列拆分2port,有的厂商按照左右拆分2port;
如果发送端与接收端定义不匹配,可能会造成显示错位;
本文提供一个脚本,以实现将图像右部,插入偶列,左部插入奇列;
使用脚本前,在脚本所在目录新建两个文件夹,分别命名:srcimg 和 dstimg
srcimg存放待转换图片,转换完的图片会放入dstimg.
import cv2
import sys
import os
import pathlib
import struct
import numpy as np
src = '.\\srcimg\\';
dst = '.\\dstimg\\';
fd=os.listdir(src);
print(fd)
i = 0;
le = len(fd);
print(le)
while i < le:
img = cv2.imread(src+fd[i]);
# cv2.imshow(fd[i], img) ;
high,width,ch = img.shape
img_new =np.zeros((high,width,ch), np.uint8)
j = 0;
while j< width:
if(j< width/2):
img_new[0:high-1,j*2-1 ,0] =img[0:high-1, j ,0];
img_new[0:high-1,j*2-1 ,1] =img[0:high-1, j ,1];
img_new[0:high-1,j*2-1 ,2] =img[0:high-1, j ,2];
else:
img_new[0:high-1,j*2-width,0]=img[0:high-1,j,0];
img_new[0:high-1,j*2-width,1]=img[0:high-1,j,1];
img_new[0:high-1,j*2-width,2]=img[0:high-1,j,2];
j+=1;
print(fd[i]);
sle = len(fd[i]);
print(sle);
# cv2.imshow(fd[i], img_new) ;
cv2.imwrite(dst+'\\'+fd[i][0:sle-4]+'py.bmp',img_new);
i += 1 ;