OpenCV中的图像数据格式CV_8U定义
今天在对 16 位的深度图提取 HOG 特征时,遇到了以下问题:
代码如下:
import cv2
import numpy as npreff_image = cv2.imread(os.path.join('C:/Users/DELL/Desktop/imgs', image_dir[j]), -1)
img_gradx = cv2.convertScaleAbs(cv2.Sobel(reff_image,cv2.CV_16S,1,0))
img_grady = cv2.convertScaleAbs(cv2.Sobel(reff_image,cv2.CV_16S,0,1))
reff_image = cv2.addWeighted(img_gradx,0.5,img_grady,0.5,0)
cell_size = (6, 6)
num_cells_per_block = (2, 2)
block_size = (num_cells_per_block[0] * cell_size[0], num_cells_per_block[1] * cell_size[1])
x_cells = reff_image.shape[1] // cell_size[0]
y_cells = reff_image.shape[0] // cell_size[1]
h_stride = 1
v_stride = 1
block_stride = (cell_size[0] * h_stride, cell_size[1] * v_stride)
num_bins = 9
win_size = (x_cells * cell_size[0] , y_cells * cell_size[1])
hog = cv2.HOGDescriptor(win_size, block_size, block_stride, cell_size, num_bins)
hog_descriptor_reff = hog.compute(reff_image)
Error 如下:
问题出在读取图片的格式不对,图片的数据类型如下:
in:print(reff_image.dtype)
out:uint16
显然不满足 CV_8U || CV_8UC3 的要求,将图像的数据类型改成 uint8 后,便可解决此问题。
reff_image = reff_image.astype(np.uint8)
问题解决后,查阅官方文档并做如下记录:
OpenCV 中的 img.type() 格式如下:
CV_<bit_depth>(S|U|F)C<number_of_channels>
1、bit_depth:比特数,有代表 8bite\16bite\32bite\64bite;
2、S|U|F:S 表示有符号整型 (signed int),U 表示无符号整型 (unsigned int),F 表示单精度浮点型 (float);
3、<number_of_channels>:代表所存储的图片的通道数。1 为单通道图像 (灰度图),3 为 RGB 图像。
OpenCV中的图像数据格式CV_8U定义相关推荐
- Python,OpenCV中的图像修复——cv2.inpaint()
Python,OpenCV中的图像修复--cv2.inpaint 1. 效果图 2. 原理 3. 源码 参考 image inpainting 图像修改 这篇博客将介绍如何通过OpenCV中图像修复的 ...
- OpenCV中关于各种颜色的定义以及RGB值
OpenCV中关于各种颜色的定义以及RGB值 #define CV_COLOR_RED cv::Scalar(0,0,255) //纯红 #define CV_COLOR_GREEN cv ...
- opencv 锐化 java_如何在OpenCV中锐化图像?
如何在OpenCV中锐化图像? 如何使用OpenCV锐化图像? 有许多平滑或模糊的方法,但没有我能看到的锐化. 7个解决方案 147 votes 关于反锐化掩蔽的维基百科文章中列出了一个通用程序:您使 ...
- OpenCV中Mat,图像二维指针和CxImage类的转换
在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转 ...
- OpenCV中的图像阈值处理算法
简 介: 本文讨论了如何通过图像阈值算法来对图像中特点对接进行隔离. 演示了几种不同的阈值分割(全局阈值分割)算法的结果.对于最简单的阈值算法,通过改变其中的阈值可以获得不同的分割效果. 关键词: 阈 ...
- OpenCV中的图像金字塔(高斯金字塔、拉普拉斯金字塔)
最近在看关于数字图像的知识点,目前在图像金字塔部分,实在是懒得用手作笔记了,就以其中比较出名的"高斯金字塔"和"拉普拉斯金字塔"为例,基于OpenCV的源代码作 ...
- OpenCV中的图像处理中
图像金字塔 一般情况下,我们要处理是一副具有固定分辨率的图像.但是有些情况下,我们需要对同一图像的不同分辨率的子图像进行处理.比如,我们要在一幅图像中查找某个目标,比如脸,我们不知道目标在图像中的尺寸 ...
- OpenCV中对图像数据进行64F和8U转换的方法
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV中很多对数据的运算都需要转换为64 ...
- 关于图像opencv中对于长宽的定义
python-opencv: img.shape输出结果为(高,宽,通道数)---(h,w,c); 获取图像像素的方法为:img[h1,w1,c1] point,输入的分别是(宽,高)或者说是(x,y ...
最新文章
- ajax与easyui树节点,EasyUI中的tree用法介绍
- Jasypt : 整合spring boot加密应用配置文件敏感信息
- vs2013中的error c4996的问题
- iptables 过滤条件(Matches)
- C语言socket()函数解析(创建套接字)af地址族,ip地址类型(Address Family)INET(Inetnet)PF(Protocol Family)
- jquery和zepto的扩展方法extend
- [汇编语言]实验三:栈和栈段
- Java 7对抑制异常的支持
- Docker 容器 和 虚拟机 的异同
- BZOJ1876 [SDOI2009]SuperGCD 【高精 + GCD优化】
- 《嵌入式系统可靠性设计技术及案例解析》读书笔记(七)
- SQL Server:如何加入第一行
- nano命令,vi ed pico sed joe emacs jed ex
- Linux 火狐无法播放视频
- Matlab 谢尔宾斯基三角形
- matlab修改图片部分像素值
- 到底什么是爬虫技术?简谈爬虫概念
- 奇数值结点链表(C语言实现)
- 怎么将计算机的触摸鼠标锁定,戴尔笔记本触摸鼠标怎么锁定
- oracle字符乱码 老熊,【转载】Hint的常见错误使用方式