基于OPENCV的字符表情的制作

    xiaoxiao2023-03-24  7

    这是一个简单有趣的小程序(其实笔者很早就像实现一下)基于opencv的字符表情制作,这里主要的思路是:

    将图片进行一定的调整大小,由于用txt中单个字符比较大大约一行只能打大约一百169个字符,所以图像的列数不能超过169(为了更好地感受到视觉效果,建议在添加图片之前将图片进行裁剪);将图像进行转换由RGB的彩图转换为GRAY的灰度图;将灰度图用threshold函数进行二值转换;创建并打开一个.txt文件对二值图片进行遍历当二值图片中的像素为空是”“,在文件中写入空格,否则写入”#“(当然也可以是别的字符);关闭txt 其中threshold共有需5个变量分别为原图像,转换后保存的图像,过滤掉最大以及最小阈值的值,以及阈值类型:CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV #include<opencv2\highgui\highgui.hpp> #include<opencv.hpp> #include<iostream> #include<cv.h> #include<stdio.h> #include<stdlib.h> using namespace cv; using namespace std; int main() { Mat src; src = imread("1.jpg"); Mat temp = Mat::zeros(100, 100, CV_8UC3); resize(src, temp, temp.size()); Mat dst; cvtColor(temp, dst, CV_RGB2GRAY); Mat two; threshold(dst, two, 100, 255, CV_THRESH_BINARY); imshow("two", two); int u = two.rows; int v = two.cols; FILE* fp; fp=fopen("1.txt", "w"); for (int i = 0; i < two.rows; i++) { for (int j = 0; j < two.cols; j++) { if (two.at<char>(i, j) == -1) fprintf(fp, " "); else fprintf(fp, "#"); } fprintf(fp, "\n"); } fclose(fp); waitKey(); }

    下面是测试的图片及效果:

    ### ######## # ####### ###### ## ###### # ###### # #### ###### # # ##### # ## ### # #### # # ## ## # ## # ## # # # ## # # ##### ### ## ####### # ## ######### ## ######## # # ####### ### ###### ### ##### ## ### # # # # # ### # # # # ## # # # # ### # # ## # # # # # ###### # ## # # # # #### # ## # # # ##### # # # # ### ### # # ## ## # ##### # ## # # ###### #### ### # # ####### ######### # # # ######## #### #### ###### # # # ######## ## ### ####### # # ######## # # ####### # # ####### # ####### # ###### # # ######## # # #### # # ####### # # # # # ####### # # # # ######## # # # # # #### ## # ## # # # # # # # # # # # # # # # # # # # # # # ## # ##### # #### # #### # ### # ### # ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ### # # # ## ## # # ## # ### ## # ## #

    # # # ######## # # ##### ############## ## ### ######### ################ #################### ################### ############## ###################### ##################### ###################### ######################## ######################## ########################## ########################## # ######################### ########################## ########################## ########################### ############################ ########################### ############################ ############################# ############################## ############################# ############################# ############################# ############################## ############################# ############################## ############################## ############################ ####### ##################### ############################## ######## #################### ############################## ####### ################## ############################## ####### ########### #### ################### ########## ####### ######## #### ############################## ####### #### #### ######## ####### # # ###### ####### ### ####### # ###### ########### ######## ### ########## # #### # ## #### ####### # ### ####### ## # #### #### #### ####### # ### # ### ## #### ## ### #### ###### # # ## ### # # # # # ## # #### # ## ### ## ### ### ### # ## # # # ### # ## # ## ### # ## ### # # ## ## # ### ## # # # ### # # ## # # ## # ### ## # # # # # # # ## # # ## # # # # # ## # # # # ## ### # # # # # #### #### # ## # # ## ### ###### # ## ## ###### # # ##### ### ######## # # #### #### ######### # # ### ## ###### ########## ## ####### ####### # ########### # # ########## ###### ### ############ ## ### ## ############ ##### ### # ############# #### # #### ####### ######### ## ############## ##### ###################### ### # ########### ##### ######### # ##################### #### # ### ############################ # ########### ####### ### # ### ################ ###### ### # #################### #### #### ####################### ### # # ################### ### # #### ####################### ### # # #### ################### # #### ####################### ### # # ## # ################## #### ########################## ### # ############### #### ########################### ## ################# ### ####### ############### ## ### # ################ # # ### ##### ############ # # ## ############# ### ## # ### ### ########### # ### #### #### ###### ##### ### #### #### ############ ### #################### ####### ### # #### ###### ########## ##### # ###### ####################### #### ######## ########## #### ## ####### ###################### #### ################### #### # ### ######################### ### ################## ######### # ### ######################### ################################# # ######################## ############################### # ## ############ ######## ################################ ## ## ###### ############# ################################ #### ## ###### ############# ################################ #### ### ################# ## ############################## # ###### ### #################### ############################## # ###### ##################### ### ########################### # ###################### ######### ########################## # # ###################### ######## ######################### # # ################# ### ####### ######################## # ####### ##### #### ##### ######################### # # ########## ## ############ ############### ######### # # ############ ####### #### ## # # # # ######### ##### # ## # ##### ############# ### ##### ####### # #########
    转载请注明原文地址: https://ju.6miu.com/read-1202399.html
    最新回复(0)