cvtcolor

OpenCV的cv::cvtColor函数之“CV_RGB2GRAY”: 未声明的标识符错误解决方法

断了今生、忘了曾经 提交于 2020-02-24 06:02:23
OpenCV 4.1,cv::cvtColor函数提示:“CV_RGB2GRAY”: 未声明的标识符。 原因:缺少头文件opencv2/imgproc/types_c.h 解决:直接添加头文件即可。 #include <opencv2/opencv.hpp> #include <opencv2/imgproc/types_c.h> #include <opencv2/opencv.hpp> #include <opencv2/imgproc/types_c.h> int main() { cv::Mat src = cv::imread("美少女.jpg"); cv::Mat dst; cv::cvtColor(src, dst, CV_BGR2GRAY); cv::imshow("原始图", src); cv::imshow("结果图", dst); cv::waitKey(0); return 0; } 来源: CSDN 作者: Kernel-Tomposon 链接: https://blog.csdn.net/shixin_0125/article/details/104463558

颜色空间转换

烂漫一生 提交于 2020-02-07 00:11:11
1、转换颜色空间 HSV:色调(H),饱和度(S),明度(V)。 比如从 BGR 到灰度图,或者从BGR 到 HSV 等 我们要用到的函数是:cv2.cvtColor(input_image,flflag),其中 flflag 就是转换类型。 对于 BGR↔Gray 的转换,我们要使用的 flflag 就是 cv2.COLOR_BGR2GRAY。 同样对于 BGR↔HSV 的转换,我们用的 flflag 就是 cv2.COLOR_BGR2HSV。 你还可以通过下面的命令得到所有可用的 flflag。 import cv2 flags=[i for in dir(cv2) if i startswith('COLOR_')] print flags 注意:在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是 [0,179], S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。但是不 同的软件使用的值可能不同。所以当你需要拿 OpenCV 的 HSV 值与其他软 件的 HSV 值进行对比时,一定要记得归一化。 2、物体跟踪 在 HSV 颜色空间中要比在 BGR 空间 中更容易表示一个特定颜色。 • 从视频中获取每一帧图像 • 将图像转换到 HSV 空间 • 设置 HSV 阈值到蓝色范围。 • 获取蓝色物体,当然我们还可以做其他任何我们想做的事

基于Python3.6的OpenCV图片色彩空间的转换

試著忘記壹切 提交于 2020-02-02 02:57:13
不同的色彩空间中对图片的色彩体现有很大不同 #色彩空间的相互转换:最常见的是HSV与RGB,YUV与RGB的相互转换 #常见色彩空间有: #RGB:最常用 #HSV:对指定色彩铭感,用于查找表达特定颜色 #HIS: #YCrCb:在人体肤色识别运用较多 #YUV:Android开发中运用较多 以下是对图片进行所有色彩空间的演示: import cv2 as cv ###导入openc包 def color_space_demo ( image ) : gray = cv.cvtColor ( image,cv.COLOR_BGR2GRAY ) cv.imshow ( "gray" ,gray ) hsv = cv.cvtColor ( image,cv.COLOR_BGR2HSV ) cv.imshow ( "hsv" ,hsv ) yuv = cv.cvtColor ( image,cv.COLOR_BGR2YUV ) cv.imshow ( "yuv" ,yuv ) Ycrcb = cv.cvtColor ( image,cv.COLOR_BGR2YCrCb ) cv.imshow ( "Ycrcb" ,Ycrcb ) HIS = cv.cvtColor ( image,cv.COLOR_BGR2HLS ) cv.imshow ( "HIS" ,HIS ) print ( "-

新年福利之Python轻松集齐五福!

徘徊边缘 提交于 2020-01-20 00:17:23
新的一年又要到来了,各个大的公司又在这年末为大家送上了新春的祝福,支付宝还是延续了这几年的传统,在年末为大家送上了集五福的活动,为了大家能更快更好的扫出来大大的“福”,今天就带领大家利用python做一个一“福”转“N”福的小demo。 先看效果图 首先,我们需要拿到一张大大的“福”字图片,然后,我们就可以对于这张图进行操作了。我们今天要实现的就是将一张“福”字转化为 五种不同的风格技术面分析 ,现为大家呈上效果图。 灰度图 首先为大家展示的是灰度图,灰度图就是将彩色的RGB三通道图像,转化为单通道的灰色像,RGB三个通道的颜色通过比例系数进行相加。程序如下所示。 def Gray_fu(self): gray_img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY) return gray_img 1 2 3 轮廓图 接下来是轮廓图,轮廓图需要输入一张灰度图像,首先是对图像进行滤波处理,去除噪声,然后针对于灰色的图片中像素突然变化的点来检测边缘,什么是边缘突然变化呢,参考我们的灰度图,灰度图中,“福”字的边缘同背景颜色出现了巨大的差异,这种差异就是寻找边缘轮廓的依据,程序如下图所示。 def Canny_fn(self): img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)

读取、修改、保存图像

跟風遠走 提交于 2020-01-10 03:32:31
注意: 我们假设读者已经了解图像读取函数 imread ,并能使用 imshow 将图像显示到窗口。 目标 如下,将学习如何使用: 图像读取 imread 图像颜色空间的转换 cvtColor 图像保存至硬盘 (using imwrite) 代码 代码如下: # include <cv.h> # include <highgui.h> using namespace cv ; int main ( int argc , char * * argv ) { if ( argc != 2 ) { printf ( "useage: %s <imagefile>\n " , argv [ 0 ] ) ; return - 1 ; } char * imageName = argv [ 1 ] ; Mat image ; image = imread ( imageName , CV_LOAD_IMAGE_COLOR ) ; if ( ! image . data ) { printf ( " No image data \n " ) ; return - 1 ; } Mat gray_image ; cvtColor ( image , gray_image , CV_BGR2GRAY ) ; imwrite ( "../../images/Gray_Image.jpg" , gray

Note : OpenCV4.1.2图像处理学习过程中遇到的问题总结

岁酱吖の 提交于 2019-12-20 09:19:50
2019/12/19学习笔记 1.cvtColor函数 cvtColor()函数是一个颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间转换,以及转换为灰度图。 cvtColor(src1, srcGray1, CV_RGB2GRAY); cvtColor(src2, srcGray2, CV_RGB2GRAY); //转为灰度图 在opencv2版本之前运行成功! 使用最新版本opencv4.1.2时,提示:“CV_RGB2GRAY”: 未声明的标识符。 #include <opencv2/imgproc/types_c.h>//添加该头文件,cvtColor函数运行成功 2.openCV(头文件问题) 在更新最新版本之后(OpenCV4.1.2)。无法打开 源 文件 "opencv2/nonfree/nonfree.hpp"问题! 原因在于:官方公布的文件 https://docs.opencv.org/3.1.0/db/dfa/tutorial_transition_guide.html Changed modules ml module has been rewritten highgui module has been split into parts: imgcodecs , videoio and highgui itself features2d

OpenCV 2.4+ C++ 人脸识别

橙三吉。 提交于 2019-12-04 23:38:24
机器学习 机器学习的目的是把数据转换成信息。 机器学习通过从数据里提取规则或模式来把数据转成信息。 人脸识别 人脸识别通过 级联分类器 对特征的分级筛选来确定是否是人脸。 每个节点的正确识别率很高,但正确拒绝率很低。 任一节点判断没有人脸特征则结束运算,宣布不是人脸。 全部节点通过,则宣布是人脸。 工业上,常用人脸识别技术来识别物体。 对图片进行识别 #include " opencv2/core/core.hpp " #include " opencv2/objdetect/objdetect.hpp " #include " opencv2/highgui/highgui.hpp " #include " opencv2/imgproc/imgproc.hpp " #include <iostream> #include <stdio.h> using namespace std; using namespace cv; string face_cascade_name = " haarcascade_frontalface_alt.xml " ; CascadeClassifier face_cascade; string window_name = " 人脸识别 " ; void detectAndDisplay( Mat frame ); int main( int

Convert a single color with cvtColor

匿名 (未验证) 提交于 2019-12-03 03:08:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have a color that I want to convert to a different color space. Is it possible to use cvtColor on a cv::Vec3f directly without creating a 1x1 cv::Mat and populating it with that pixel, using cvtColor on the cv::Mat , then getting the only pixel out of the output? I have tried the following, but it doesn't seem to like getting passed a vector. Any suggestions? #include #include int main(int, char*[]) { cv::Vec3f hsv; hsv[0] = .9; hsv[1] = .8; hsv[2] = .7; std::cout I also tried this, but get a different error: #include #include int main(int

OpenCV(3.4.1) Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor, file D:\Build\...

匿名 (未验证) 提交于 2019-12-03 00:30:01
错误:OpenCV(3.4.1) Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor, file D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp, line 11147 Traceback (most recent call last): cv2.error: OpenCV(3.4.1) D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp:11147: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor 关于这个错误 img = cv2.imread( 'images/chess_board.jpg' ) img = cv2.imread( 'chess_board.jpg' ) 这下好了 文章来源: OpenCV(3.4.1) Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor, file D:\Build\...

图像处理之python(基础学习)

匿名 (未验证) 提交于 2019-12-02 22:51:30
1. 读取图片 2. 保存图片 3. 颜色空间转换 4. 获取图片属性 5. 缩放图片 6. 平移图片 7. 旋转图片 8. 仿射变换 9. 通道的拆分/合并处理 10. 图片添加边距 import numpy as np import cv2 as cv # OpenCv库 # 为了一直显示图片 在显示图片后加上 cv.waitKey( 0 ) # 等待输入 一直显示当前图片 # 销毁所有窗口 cv.destroyAllWindows() img = cv.imread( r".\1.png" ) # 相对路径 # 这里用的相对路径 当然也可以用绝对路径 可以go to declaration查看使用说明 函数原型: def imread(filename, flags=None): # real signature unknown; restored from doc 参数含义: @param filename Name of file to be loaded. @param flags Flag that can take values of cv::ImreadModes 参数说明: filename没什么可说的,绝对地址或者相对地址 重点说明一下flags参数 Enumerator IMREAD_UNCHANGED:不进行转化,比如保存为了16位的图片