首页 > 其他分享 >图片素描化

图片素描化

时间:2023-11-22 17:24:37浏览次数:35  
标签:int number 素描 2000 include 图片

去年暑假无聊搞的小项目

#include <graphics.h>  
#include <conio.h>
#include <stdio.h>
#include<iostream>
using namespace std;
int width,hight;
IMAGE photo1;
const int N=2000,M=2000;//Warning!!!:  change this number to match the picture
COLORREF ys0[N][M],ys1[N][M],ys2[N][M],ys3[N][M],ys4[N][M];
void huoqu()//获取颜色
{
	for(int i=0;i<width;++i)
		for(int j=0;j<hight;++j)
			ys0[i][j]=getpixel(i,j);
}
void quse_fanxiang()//去色+反向
{
	for(int i=0;i<=width;++i)
		for(int j=0;j<hight;++j)
		{
			int r = GetRValue(ys0[i][j]);
			int g = GetGValue(ys0[i][j]);
			int b = GetBValue(ys0[i][j]);
			int minn=min(min(r,g),b),maxx=max(max(r,g),b);
			ys1[i][j]=RGB((minn+maxx)/2,(minn+maxx)/2,(minn+maxx)/2);//去色
		}//(r*299+g*587+b*114+1000)/500
	//FlushBatchDraw();//后期处理


	//return;

	for(int i=0;i<=width;++i)
		for(int j=0;j<hight;++j)//反向
		{
			int r = GetRValue(ys1[i][j]);
			ys2[i][j]=RGB(255-r,255-r,255-r);
		}

}
void lvjing()
{
	int radius=2;
	for(int i=0;i<=width;++i)
		for(int j=0;j<hight;++j)//最小值滤镜
		{
			int minn=114514;
			for(int k=i-radius;k<=i+radius;++k)
				for(int l=j-radius;l<=j+radius;++l)
					if((i-k)*(i-k)+(j-l)*(j-l)<=radius*radius)minn=min(minn,GetRValue(ys2[k][l]));
			ys3[i][j]=RGB(minn,minn,minn);
		}
}
void yansejiandan()//颜色减淡
{
	float H0,S0,L0,H3,S3,L3;
	for(int i=0;i<=width;++i)
		for(int j=0;j<hight;++j)
		{
			RGBtoHSL(ys1[i][j],&H0,&S0,&L0);
			RGBtoHSL(ys3[i][j],&H3,&S3,&L3);
			ys4[i][j]=HSLtoRGB(H0,S0,L0+L3);
		}
}
void hua()
{
	//BeginBatchDraw();
	FlushBatchDraw();//后期处理

	for(int i=0;i<width;++i)
		for(int j=0;j<hight;++j)
			putpixel(i,j,ys4[i][j]);
}
int main()
{
	width=100;hight=100;
	initgraph(width,hight);
	setbkcolor(BLACK);
	cleardevice();

	loadimage(&photo1,_T(".\\img\\mj.jpg"));
	putimage(0,0,&photo1);
	width=photo1.getwidth();hight=photo1.getheight();
	initgraph(width,hight);
	setbkcolor(BLACK);
	cleardevice();
	putimage(0,0,&photo1);

	quse_fanxiang();


	huoqu();
	quse_fanxiang();
	lvjing();
	yansejiandan();
	hua();
	_getch();
	closegraph();
	return 0;
}

标签:int,number,素描,2000,include,图片
From: https://www.cnblogs.com/wljss/p/17849839.html

相关文章

  • Topaz Photo AI:用AI技术,提升图片品质 mac/win版
    TopazPhotoAI是一款基于人工智能技术的图片优化软件,它能够帮助摄影师们对图片进行自动优化,使其更加美丽和生动。点击获取TopazPhotoAI首先,TopazPhotoAI具有非常强大的自动优化功能。它能够根据图片的内容和场景,自动调整图片的曝光、对比度、白平衡、色调等等参数,使其更加......
  • numpy 保存图片
    #!/usr/bin/envpython#coding:utf-8importnumpyasnpfromPILimportImage#im=Image.open('pic/cat.jpg')#im.show()#im.save("pic/cat.png")defsave_pic_np():im=Image.open('pic/cat.jpg')m=np.array(im......
  • 驾驶舱看板首页图片第三版
    指标字典: 嵌入后台: BI小知识: 嵌入后台1: ......
  • uniapp app上传图片并设置超过10m进行图片压缩
    组件页面<template>   <viewclass="upload-wrapper">      <viewv-if="pictureUrl.length">         <viewclass="preview"v-for="(item,index)inpictureUrl":key='index'>        ......
  • cxImage1图片显示(17)
    参考:https://www.cnblogs.com/liessay/p/5267221.html1]:   Picture:载入要显示的图片,也可从DEV自带IconLibrary库里选择2]:   Properties->Caption在没有内容的时候显示在图片框中间的文字 3]:   Properties->PopupMenuLayout->MenuItems可选择需要显示在......
  • uniapp使用第三方插件image-tools进行图片转base64
    最近做的这个项目原来是原生android开发的,然后图片上传功能是 前端获取图片->图片转成base64字符串(base64编码)->传递给服务器后端->服务器接受base64字符串数据->获取到的base64转成图片jpg(解码)->存入服务器,并写入数据库后来因为原生安卓太麻烦了,转成了uniapp进行开......
  • 驾驶舱首页说明图片第二版
    用户增长: BI:经营:交付: ......
  • 220-jquery,将base64的图片,转为file文件,并通过$.ajax上传
    varbase64='';constblob=dataURLToBlob(base64);constfile=blobToFile(blob,'image.jpg');uploadImage(file);functiondataURLToBlob(base64){constparts=dataURL.split(';base64,');constcontentType=......
  • Linux mac 隐藏文件到图片
    maclinux将文件玩隐藏到图片中隐藏有一个图像文件image.jpg,以及一个叫做secret.zip的文件,其包含有加密信息,也是我们将要嵌入到image.jpg中的文件。最终,我将使用cat命令将secret.zip文件与图像文件(image.jpg)复合在一起并保存为ostechnix.jpg文件。更清晰的......
  • 驾驶舱首页说明图片库
       ......