屏幕旋转导致的openccv取图变色.
这两天发现我的摄像头拍出来偏绿色. 绿绿的,跟鬼一样. 后来查了下手册.
是下面的这个参数要设置一下, 默认值好像是50…
重新设置一下, 改成1就可以了.
import cv2
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_HUE, 1)
后来, 客户买了个竖屏. 发现屏幕横着的时候是正常的, 改成竖着的时候就变成了偏红色, 感觉像是进了红灯区.
查了一上午. 最后排查发现, 原来是代码中关于宽度和高度的设置一定要正确合理. 否则,会出现色差.
下面的代码是错误的代码.
import cv2
from tkinter import *
win = Tk()
win.title("垃圾分类智能识别系统")
screenwidth = win.winfo_screenwidth()
screenheight = win.winfo_screenheight()
minw = min(screenheight,screenwidth)
capture = cv2.VideoCapture(0) #打开本地摄像头
capture.set(cv2.CAP_PROP_HUE, 1)#色调
capture.set(cv2.CAP_PROP_FRAME_WIDTH, screenwidth )#
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, screenheight )#
如上所书,这个宽高虽然是灵活了,但是并不正确. 所以这里的数值会因为竖屏而出现bug. 这里关键的概念是, 摄像头的宽高是特殊数值, 不是可以随意填的.
下面是正常的代码.
import cv2
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_HUE, 1)
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
1.基于OpenCv的旋转匹配
基于OpenCv实现了模板图像的旋转匹配,此代码基于matchTemplate函数封装实现可以得知旋转角度的模板匹配(vs2013+opencv2.4.9)
2.带旋转的模板匹配的原理及算法实现(c++)
带旋转的模板匹配算法,能够匹配带旋转角度的模板。(VS 2015+OPENCV C++)
在标记点识别的过程中,因为某些原因,预先对编码标记进行了反色处理,因此在原图二值化后是不能直接识别编码点的,因此需要在处理时再次进行反色处理,将编码标记恢复为正常的色值,从而实现识别,记录以下。
一、如何反色处理
单通道图像的色值在0-255之间,三通道图像的RGB色值均在0-255之间
以单通道图像为例,假设某点的色值为pv,且0<=pv<=255,故反色的实质为设定该点的色值为:255-pv;
三通道图像同理,取其RGB值均255减去其原值,故:
1.C++:
void SetSin
用程序读取免驱动相机的照片,偏蓝色,如下图所示。相同的程序,之前的相机跑就是正常的。用amcap查看相机参数,发现相机自动白平衡被改,将白平衡设置为正常值则工作正常。后来发现,在程序中加一句话可以解决问题。
cap0.set(15,0.1)搞定。
长视频文件中,检测异常画面帧出现的次数以及截图报错,替代人工检查(附代码)方案一:**像素点:(height, width, channels)**
方案二:**二级图:RGB/HSV颜色**
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
xmlfile = r'D:\Anaconda\Lib\site-packages\cv2.
问题在于plt是显示三通道的,而灰度图是单通道的,改为用plt.imshow(imgL, plt.cm.gray), 或者用cv2.imshow('imgR',imgR) cv2.waitKey(0)
1、cap = cv2.VideoCapture(0)
VideoCapture()中参数是0,表示打开笔记本的内置摄像头,参数是视频文件路径则打开视频,如cap = cv2.VideoCapture(“../test.avi”)
2、ret,frame = cap.read()
cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。其中...
问题描述:使用VideoCapture打开摄像头时,摄像头总是闪一下就关闭,查看错误信息发现有一行警告([ WARN:0] Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(unsupported media type)),大意上是告诉我媒体类型不匹配,设置分辨率失败!
网上搜了很多关于此
如下来自百度百科:
白平衡,字面上的理解是白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标。白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题。白平衡是随着电子影像再现色彩真实而产生的,在专业摄像领域白平衡应用的较早。家用电子产品(家用摄像机、数码照相机)中也广泛地使用,然而技术的发展使得白平衡调整变得越来越简单容易,但许多使用者还不甚了解白平