CV-提取图像Freeman码python实现
在anaconda和python下提取图像的freeman码
先利用opencv中的cv2.findContours 函数描述图片的轮廓,然后再返回值中得到一个有关于图像轮廓的数组,因为我们要的是freeman码,根据网上对于freeman.码 的定义,对于得到的数组进行相对于的操作即可得到对应的Freeman
以下是在anaconda下的python的代码
'''
提取一个图像的Freeman码
导入opencv中的cv2.findContours函数提取图像的轮http://blog.csdn.net/dcrmg/article/details/51987348
在该函数返回之中的 contours 包含了轮廓的属性,保存在一个数组中
通过对数组的计算,及可得到Freeman码
'''
import cv2
import numpy as np
import pandas as pd
img = cv2.imread('4.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, binary =cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
binary,contours, hierarchy =cv2.findContours(binary,cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
#cv2.drawContours(img,contours,-1,(0,0,255),3)
#cv2.imshow("img", img)
#cv2.waitKey(0)
#cv2.RETR_TREE
#print (type(contours))
#print (type(contours[0]))
#print (len(contours[0]))
#print (contours[0]-contours[0])
columns = []
for i in range(81):
columns.append(contours[0][i]-contours[0][i - 1])
#print (len(columns))
#print (columns[1][0][0])
a = []
for i in range(81):
if columns[i][0][0] == 0 and columns[i][0][1] == -1:
a.append(6)
elif columns[i][0][0] == 0 and columns[i][0][1] == 1:
a.append(2)
elif columns[i][0][0] == 1 and columns[i][0][1] == 1:
a.append(1)
elif columns[i][0][0] == 1 and columns[i][0][1] == 0:
a.append(0)
elif columns[i][0][0] == 1 and columns[i][0][1] == -1:
a.append(7)
elif columns[i][0][0] == -1 and columns[i][0][1] == 1:
a.append(3)
elif columns[i][0][0] == -1 and columns[i][0][1] == 0:
a.append(4)
elif columns[i][0][0] == -1 and columns[i][0][1] == -1:
a.append(5)
print(a)
CV-提取图像Freeman码python实现相关推荐
- python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...
python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...
- 图像轮廓生成Freeman码
##图像轮廓生成Freeman码## 摘要 Freeman码是描述轮廓的另外一种形式,这篇博客我将会用matlab和OpenCV两个版本生成Freeman码.纵观网上很多介绍边缘轮廓的,都提到过Fre ...
- open cv提取图片特征值_基于VGG16网络提取Flicker8K数据集图像特征
# !/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : ${20200326} ${18:00} # @Author : ZicoZhou ...
- python提取列表中文本_python提取图像的名字*.jpg到txt文本的方法
如下所示: # -*- coding:utf-8 -*- import sys sys.path.append('E:\\Anaconda\\libs') import os #os:操作系统相关的信 ...
- python图像纹理提取_提取图像的颜色、纹理特征(传统算法)
Python-Image-feature-extraction Python实现提取图像的纹理.颜色特征,包含快速灰度共现矩阵(GLCM).LBP特征.颜色矩.颜色直方图.1044197988/Pyt ...
- python获取图片名称_python提取图像的名字*.jpg到txt文本的方法
如下所示: # -*- coding:utf-8 -*- import sys sys.path.append('E:\\Anaconda\\libs') import os #os:操作系统相关的信 ...
- python图片截取特定部分_如何在Python中使用OpenCV提取图像的特定部分?
我正在尝试通过执行精明的边缘检测来提取图像的一部分.我已经成功地创建了该对象的掩码.但是,当我对原始图像执行bitwise_and操作以提取前景部分时,会出现以下错误.OpenCV Error: As ...
- OpenCV python 提取图像内的三色
OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...
- python 图像卷积_[卷积神经网络(CNN)中的卷积核到底是如何提取图像特征的(python实现图像卷积运算)]...
1.前言 我们知道,卷积核(也叫滤波器矩阵)在卷积神经网络中具有非常重要的作用.说白了,CNN主要作用在于提取图像的各种特征图(feature maps). CNN主要是通过卷积运算来完成特征提取的. ...
最新文章
- 采用CreateThread()创建多线程程序
- java存储三元组_在4store中添加三元组
- [Android]关于IntentService
- JDK源码(20)-Thread
- 本地mysql数据库初始密码_忘记本地MySQL数据库密码的解决方法
- 数据分析之Pandas VS SQL!
- ocp认证考试指南第一章
- ROS-cmakelists的解释
- gitlab 删除分支_idea gitlab 分支 pull、push 实践笔记
- 【干货】--手把手教你完成文本情感分类
- web 前端小记_1 :hasLayout
- haproxy利用ACL规则封禁自定义IP地址拒绝访问
- CUDA版本与显卡驱动匹配
- jsonp跨域原理(简单粗暴)
- ESD 静电保护原理和设计
- 怎么在计算机上面掉出CMD,电脑没有cmd怎么办
- c语言文件大小限制,文件超过某个大小就删除(C语言)
- 【数据库取证篇】阿里云RDS数据库简介
- 企业发布重要通知短信收不到该怎么办
- nvme固态必须uefi启动吗_戴尔Inspiron 灵越笔记本装win10系统及bios设置教程(uefi+gpt)...
热门文章
- 使用OpenMP reduction子句求解二维数组的最小值和输出所在下标
- 一百年沧桑巨变,数学大树依然长青
- 微信小程序连接蓝牙ble教程(目录)
- Lichee_RV学习系列--stream移植
- chapter10 十大算法
- 网络摄像机中的IR-CUT详解
- (No operations allowed after connection closed.).Possibly consider using a shorter maxLifetime value
- mysql的sqlyog学习笔记(高级查询部分)(代码用命令行显示 )
- 完全k叉树(CCPC-Wannafly Comet OJ 夏季欢乐赛(2019) A)
- ssm毕设项目学生宿舍管理系统15pjb(java+VUE+Mybatis+Maven+Mysql+sprnig)